├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── DerydocaEngine.Components.Editor ├── CMakeLists.txt └── src │ ├── Components │ ├── EditorCameraWindow.cpp │ ├── EditorCameraWindow.h │ ├── EditorWindowComponent.cpp │ ├── EditorWindowComponent.h │ ├── EngineAssetBrowser.cpp │ ├── EngineAssetBrowser.h │ ├── EngineConsole.cpp │ ├── EngineConsole.h │ ├── ImGuiDemoWindow.cpp │ ├── ImGuiDemoWindow.h │ ├── InspectorWindow.cpp │ ├── InspectorWindow.h │ ├── SceneCameraInput │ │ ├── OrbitalControlStrategy.cpp │ │ ├── OrbitalControlStrategy.h │ │ ├── SceneCameraInputStrategy.cpp │ │ ├── SceneCameraInputStrategy.h │ │ ├── WasdControlStrategy.cpp │ │ └── WasdControlStrategy.h │ ├── SceneHierarchyWindow.cpp │ ├── SceneHierarchyWindow.h │ ├── SceneViewerWindow.cpp │ └── SceneViewerWindow.h │ ├── Editor │ └── ComponentInspectors │ │ ├── CameraInspector.cpp │ │ ├── CameraInspector.h │ │ ├── FrameStatsInspector.cpp │ │ ├── FrameStatsInspector.h │ │ ├── KeyboardMoverInspector.cpp │ │ ├── KeyboardMoverInspector.h │ │ ├── LightInspector.cpp │ │ ├── LightInspector.h │ │ ├── MeshRendererInspector.cpp │ │ ├── MeshRendererInspector.h │ │ ├── RotatorInspector.cpp │ │ ├── RotatorInspector.h │ │ ├── SpriteRendererInspector.cpp │ │ ├── SpriteRendererInspector.h │ │ ├── TextRendererInspector.cpp │ │ ├── TextRendererInspector.h │ │ ├── WasdMoverInspector.cpp │ │ └── WasdMoverInspector.h │ ├── EditorComponentsPch.cpp │ └── EditorComponentsPch.h ├── DerydocaEngine.Components ├── CMakeLists.txt └── src │ ├── Components │ ├── Camera.cpp │ ├── Camera.h │ ├── FrameStats.cpp │ ├── FrameStats.h │ ├── GameComponent.cpp │ ├── GameComponent.h │ ├── GameComponentFactory.cpp │ ├── GameComponentFactory.h │ ├── KeyboardMover.cpp │ ├── KeyboardMover.h │ ├── Light.cpp │ ├── Light.h │ ├── MeshRenderer.cpp │ ├── MeshRenderer.h │ ├── RendererComponent.cpp │ ├── RendererComponent.h │ ├── Rotator.cpp │ ├── Rotator.h │ ├── SpriteRenderer.cpp │ ├── SpriteRenderer.h │ ├── TextRenderer.cpp │ ├── TextRenderer.h │ ├── Transform.cpp │ ├── Transform.h │ ├── WasdMover.cpp │ └── WasdMover.h │ ├── EngineComponentsPch.cpp │ └── EngineComponentsPch.h ├── DerydocaEngine.Editor.UI ├── CMakeLists.txt └── src │ ├── Editor │ └── Execution │ │ ├── CommandLineArgs.cpp │ │ └── CommandLineArgs.h │ ├── EditorPch.cpp │ ├── EditorPch.h │ ├── main.cpp │ └── stbi_impl.cpp ├── DerydocaEngine.Editor ├── CMakeLists.txt └── src │ ├── Dgui │ ├── InputProjection.cpp │ ├── InputProjection.h │ ├── InputQuaternion.cpp │ ├── InputQuaternion.h │ ├── InputText.cpp │ ├── InputText.h │ ├── ResourcePicker.cpp │ └── ResourcePicker.h │ ├── Editor │ ├── EditorGUI.cpp │ ├── EditorGUI.h │ ├── EditorRenderer.cpp │ ├── EditorRenderer.h │ ├── Inspector │ │ ├── ComponentInspectors │ │ │ └── TransformInspector.h │ │ ├── GameObjectInspector.h │ │ ├── InspectorRenderer.h │ │ ├── InspectorRendererFactory.cpp │ │ ├── InspectorRendererFactory.h │ │ ├── ResourceInspectors │ │ │ ├── CubemapResourceInspector.h │ │ │ ├── FontResourceInspector.h │ │ │ ├── LevelResourceInspector.h │ │ │ ├── MaterialResourceInspector.h │ │ │ ├── MeshResourceInspector.h │ │ │ ├── RasterFontInspector.h │ │ │ ├── ShaderResourceInspector.h │ │ │ ├── SpriteSheetResourceInspector.h │ │ │ └── TextureResourceInspector.h │ │ └── UndefinedInspector.h │ ├── SelectionGroup.h │ ├── SelectionManager.cpp │ └── SelectionManager.h │ ├── EditorPch.cpp │ └── EditorPch.h ├── DerydocaEngine ├── CMakeLists.txt └── src │ ├── AssetData │ ├── CubemapData.h │ ├── FontFaceData.h │ ├── MaterialData.h │ └── SpriteSheetData.h │ ├── Color.h │ ├── DerydocaEngineCommonPch.h │ ├── EnginePch.cpp │ ├── EnginePch.h │ ├── Files │ ├── FileType.cpp │ ├── FileType.h │ ├── FileUtils.h │ └── Serializers │ │ ├── CubemapFileSerializer.cpp │ │ ├── CubemapFileSerializer.h │ │ ├── FileSerializerLibrary.cpp │ │ ├── FileSerializerLibrary.h │ │ ├── FileTypeSerializer.cpp │ │ ├── FileTypeSerializer.h │ │ ├── FontFileSerializer.cpp │ │ ├── FontFileSerializer.h │ │ ├── ImageFileSerializer.cpp │ │ ├── ImageFileSerializer.h │ │ ├── LevelFileSerializer.cpp │ │ ├── LevelFileSerializer.h │ │ ├── MaterialFileSerializer.cpp │ │ ├── MaterialFileSerializer.h │ │ ├── MeshFileSerializer.cpp │ │ ├── MeshFileSerializer.h │ │ ├── RasterFontFileSerializer.cpp │ │ ├── RasterFontFileSerializer.h │ │ ├── ShaderFileSerializer.cpp │ │ ├── ShaderFileSerializer.h │ │ ├── SpriteSheetFileSerializer.cpp │ │ └── SpriteSheetFileSerializer.h │ ├── GameObject.cpp │ ├── GameObject.h │ ├── Helpers │ ├── AssimpUtils.cpp │ ├── AssimpUtils.h │ ├── StringUtils.cpp │ └── StringUtils.h │ ├── Input │ ├── ButtonState.cpp │ ├── ButtonState.h │ ├── InputManager.cpp │ ├── InputManager.h │ ├── Key.cpp │ ├── Key.h │ ├── Keyboard.cpp │ ├── Keyboard.h │ ├── Mouse.cpp │ └── Mouse.h │ ├── IntRect.h │ ├── IntRectangle.cpp │ ├── IntRectangle.h │ ├── Logging │ ├── InternalEngineSync.h │ ├── Log.cpp │ ├── Log.h │ ├── LogDomain.h │ ├── LogLevel.h │ ├── LogMessage.cpp │ └── LogMessage.h │ ├── Math │ └── TypeAliases.h │ ├── MeshFlags.h │ ├── Object.cpp │ ├── Object.h │ ├── ObjectLibrary.cpp │ ├── ObjectLibrary.h │ ├── Rect.h │ ├── Rectangle.h │ ├── Rendering │ ├── CameraManager.cpp │ ├── CameraManager.h │ ├── Display.cpp │ ├── Display.h │ ├── DisplayManager.cpp │ ├── DisplayManager.h │ ├── GraphicsAPI.h │ ├── GraphicsAPI_OpenGL.cpp │ ├── Gui │ │ ├── DearImgui.cpp │ │ └── DearImgui.h │ ├── LightManager.cpp │ ├── LightManager.h │ ├── Material.cpp │ ├── Material.h │ ├── MatrixStack.h │ ├── Mesh.cpp │ ├── Mesh.h │ ├── Projection.cpp │ ├── Projection.h │ ├── RenderPass.h │ ├── RenderTexture.cpp │ ├── RenderTexture.h │ ├── Renderer.cpp │ ├── Renderer.h │ ├── RenderingMode.h │ ├── Shader.cpp │ ├── Shader.h │ ├── ShaderLibrary.cpp │ ├── ShaderLibrary.h │ ├── Skybox.cpp │ ├── Skybox.h │ ├── Texture.cpp │ ├── Texture.h │ └── UniformBuffer.h │ ├── ResourceRef.h │ ├── Resources │ ├── CubemapResource.h │ ├── FontResource.h │ ├── LevelResource.h │ ├── MaterialResource.h │ ├── MeshResource.h │ ├── RasterFontResource.h │ ├── Resource.cpp │ ├── Resource.h │ ├── ResourceTreeNode.cpp │ ├── ResourceTreeNode.h │ ├── ResourceType.h │ ├── Serializers │ │ ├── CubemapResourceSerializer.cpp │ │ ├── CubemapResourceSerializer.h │ │ ├── MaterialResourceSerializer.cpp │ │ ├── MaterialResourceSerializer.h │ │ ├── MeshResourceSerializer.cpp │ │ ├── MeshResourceSerializer.h │ │ ├── RasterFontResourceSerializer.cpp │ │ ├── RasterFontResourceSerializer.h │ │ ├── ResourceSerializer.h │ │ ├── ResourceSerializerLibrary.cpp │ │ ├── ResourceSerializerLibrary.h │ │ ├── ShaderResourceSerializer.cpp │ │ ├── ShaderResourceSerializer.h │ │ ├── SpriteSheetResourceSerializer.cpp │ │ ├── SpriteSheetResourceSerializer.h │ │ ├── TextureResourceSerializer.cpp │ │ └── TextureResourceSerializer.h │ ├── ShaderResource.cpp │ ├── ShaderResource.h │ ├── SpriteSheetResource.h │ └── TextureResource.h │ ├── Scenes │ ├── HardCodedScene.cpp │ ├── HardCodedScene.h │ ├── Scene.h │ ├── SceneManager.cpp │ ├── SceneManager.h │ ├── SerializedScene.cpp │ └── SerializedScene.h │ ├── Serialization │ ├── CerealGlmTypes.h │ └── Serialization.h │ ├── Settings │ ├── EditorWindowSettings.h │ ├── EngineSettings.cpp │ └── EngineSettings.h │ ├── SystemWindowingLayer.h │ ├── SystemWindowingLayer_SDL.cpp │ ├── Timing │ ├── Clock.cpp │ └── Clock.h │ ├── TypeNameLookup.cpp │ ├── TypeNameLookup.h │ ├── UI │ ├── FontFace.cpp │ ├── FontFace.h │ ├── SpriteReference.h │ ├── SpriteSheet.cpp │ └── SpriteSheet.h │ ├── Utilities │ ├── TexturePacker.cpp │ ├── TexturePacker.h │ ├── TexturePackerImage.h │ ├── TexturePackerTextureData.cpp │ └── TexturePackerTextureData.h │ ├── uuid.cpp │ ├── uuid.h │ └── vendor │ ├── imgui │ ├── imconfig.h │ ├── imgui.cpp │ ├── imgui.h │ ├── imgui_demo.cpp │ ├── imgui_draw.cpp │ ├── imgui_impl_opengl3.cpp │ ├── imgui_impl_opengl3.h │ ├── imgui_impl_sdl.cpp │ ├── imgui_impl_sdl.h │ ├── imgui_internal.h │ ├── imgui_widgets.cpp │ ├── imstb_rectpack.h │ ├── imstb_textedit.h │ └── imstb_truetype.h │ ├── stb_image.h │ └── stb_image_write.h ├── LICENSE ├── README.md ├── _config.yml ├── engineResources ├── configs │ ├── engineSettings.json │ └── imgui.ini ├── fonts │ ├── FiraCode-Medium.dfont │ ├── FiraCode-Medium.dfont.bmp │ ├── FiraCode-Medium.dfont.bmp.dmeta │ ├── FiraCode-Medium.dfont.dmeta │ ├── FiraCode-Medium.ttf │ ├── FiraCode-Medium.ttf.dmeta │ ├── OpenSans-Regular.ttf │ ├── OpenSans-Regular.ttf.dmeta │ ├── opensans_16.dfont │ ├── opensans_16.dfont.bmp │ ├── opensans_16.dfont.bmp.dmeta │ └── opensans_16.dfont.dmeta ├── levels │ ├── editorComponents.derylevel │ ├── editorComponents.derylevel.dmeta │ ├── editorWindows.derylevel │ └── editorWindows.derylevel.dmeta ├── materials │ ├── basic_cubemap.dcubemap │ ├── basic_cubemap.dcubemap.dmeta │ ├── basic_skybox.derymaterial │ ├── basic_skybox.derymaterial.dmeta │ ├── errorMaterial.derymaterial │ ├── errorMaterial.derymaterial.dmeta │ ├── fontBasic.derymaterial │ ├── fontBasic.derymaterial.dmeta │ ├── grid.derymaterial │ ├── grid.derymaterial.dmeta │ ├── solidMaterial.derymaterial │ └── solidMaterial.derymaterial.dmeta ├── models │ ├── checkers.obj │ ├── checkers.obj.dmeta │ ├── cube.obj │ ├── cube.obj.dmeta │ ├── directionalLightMarker.obj │ ├── directionalLightMarker.obj.dmeta │ ├── plane.obj │ ├── plane.obj.dmeta │ ├── planeDense.obj │ ├── planeDense.obj.dmeta │ ├── pyramid.obj │ ├── pyramid.obj.dmeta │ ├── quad.obj │ ├── quad.obj.dmeta │ ├── sphere.obj │ ├── sphere.obj.dmeta │ ├── spotlightMarker.obj │ └── spotlightMarker.obj.dmeta ├── shaders │ ├── basicShader.fs │ ├── basicShader.vs │ ├── basicShader.vs.dmeta │ ├── cubemapShader.fs │ ├── cubemapShader.vs │ ├── cubemapShader.vs.dmeta │ ├── deferredRenderCompositorShader.fs │ ├── deferredRenderCompositorShader.vs │ ├── deferredRenderCompositorShader.vs.dmeta │ ├── diffuseFrag.fs │ ├── diffuseFrag.vs │ ├── diffuseFrag.vs.dmeta │ ├── diffuseVert.fs │ ├── diffuseVert.vs │ ├── diffuseVert.vs.dmeta │ ├── discardShader.fs │ ├── discardShader.vs │ ├── discardShader.vs.dmeta │ ├── errorShader.fs │ ├── errorShader.vs │ ├── errorShader.vs.dmeta │ ├── fontShader.fs │ ├── fontShader.vs │ ├── fontShader.vs.dmeta │ ├── gridShader.fs │ ├── gridShader.vs │ ├── gridShader.vs.dmeta │ ├── phongVert.fs │ ├── phongVert.vs │ ├── phongVert.vs.dmeta │ ├── phongVertFlat.fs │ ├── phongVertFlat.vs │ ├── phongVertFlat.vs.dmeta │ ├── phongVertTwoSided.fs │ ├── phongVertTwoSided.vs │ ├── phongVertTwoSided.vs.dmeta │ ├── solidShader.fs │ ├── solidShader.vs │ ├── solidShader.vs.dmeta │ ├── spriteShader.fs │ ├── spriteShader.vs │ └── spriteShader.vs.dmeta ├── spritesheets │ ├── standardSprites.dsprites │ ├── standardSprites.dsprites.dmeta │ ├── standardSprites.dsprites.tga │ └── standardSprites.dsprites.tga.dmeta └── textures │ ├── black.png │ ├── black.png.dmeta │ ├── cubemap-xneg.png │ ├── cubemap-xneg.png.dmeta │ ├── cubemap-xpos.png │ ├── cubemap-xpos.png.dmeta │ ├── cubemap-yneg.png │ ├── cubemap-yneg.png.dmeta │ ├── cubemap-ypos.png │ ├── cubemap-ypos.png.dmeta │ ├── cubemap-zneg.png │ ├── cubemap-zneg.png.dmeta │ ├── cubemap-zpos.png │ ├── cubemap-zpos.png.dmeta │ ├── ui_caret.png │ ├── ui_caret.png.dmeta │ ├── ui_circle.png │ ├── ui_circle.png.dmeta │ ├── ui_rounded_rect.png │ ├── ui_rounded_rect.png.dmeta │ ├── white.png │ └── white.png.dmeta ├── exampleProject ├── levels │ ├── ShaderExamples.derylevel │ ├── ShaderExamples.derylevel.dmeta │ ├── fontRendering.derylevel │ ├── fontRendering.derylevel.dmeta │ ├── normalMap.derylevel │ ├── normalMap.derylevel.dmeta │ ├── spriteRendering.derylevel │ ├── spriteRendering.derylevel.dmeta │ ├── threeSquirrels.derylevel │ └── threeSquirrels.derylevel.dmeta ├── materials │ ├── diffuseVertMaterial.derymaterial │ ├── diffuseVertMaterial.derymaterial.dmeta │ ├── discardShaderMaterial.derymaterial │ ├── discardShaderMaterial.derymaterial.dmeta │ ├── flame_cubemap.dcubemap │ ├── flame_cubemap.dcubemap.dmeta │ ├── flame_skybox.derymaterial │ ├── flame_skybox.derymaterial.dmeta │ ├── normalMapCrate.derymaterial │ ├── normalMapCrate.derymaterial.dmeta │ ├── normalMapPavement.derymaterial │ ├── normalMapPavement.derymaterial.dmeta │ ├── phongVertFlatMaterial.derymaterial │ ├── phongVertFlatMaterial.derymaterial.dmeta │ ├── phongVertMaterial.derymaterial │ ├── phongVertMaterial.derymaterial.dmeta │ ├── phongVertTwoSidedMaterial.derymaterial │ ├── phongVertTwoSidedMaterial.derymaterial.dmeta │ ├── stormydays_cubemap.dcubemap │ ├── stormydays_cubemap.dcubemap.dmeta │ ├── stormydays_skybox.derymaterial │ └── stormydays_skybox.derymaterial.dmeta ├── models │ ├── acorn.obj │ ├── acorn.obj.dmeta │ ├── monkeyOpen.obj │ ├── monkeyOpen.obj.dmeta │ ├── spikeCube.obj │ ├── spikeCube.obj.dmeta │ ├── squirrel.obj │ ├── squirrel.obj.dmeta │ ├── wood_crate_model.fbx │ └── wood_crate_model.fbx.dmeta ├── shaders │ ├── normalMap.fs │ ├── normalMap.vs │ └── normalMap.vs.dmeta └── textures │ ├── pavement_diffuse.tga │ ├── pavement_diffuse.tga.dmeta │ ├── pavement_normal.tga │ ├── pavement_normal.tga.dmeta │ ├── rebel.jpg │ ├── rebel.jpg.dmeta │ ├── skyboxes │ ├── flame │ │ ├── flame_bk.jpg │ │ ├── flame_bk.jpg.dmeta │ │ ├── flame_dn.jpg │ │ ├── flame_dn.jpg.dmeta │ │ ├── flame_ft.jpg │ │ ├── flame_ft.jpg.dmeta │ │ ├── flame_lf.jpg │ │ ├── flame_lf.jpg.dmeta │ │ ├── flame_rt.jpg │ │ ├── flame_rt.jpg.dmeta │ │ ├── flame_up.jpg │ │ └── flame_up.jpg.dmeta │ └── stormydays │ │ ├── README.TXT │ │ ├── stormydays_bk.tga │ │ ├── stormydays_bk.tga.dmeta │ │ ├── stormydays_dn.tga │ │ ├── stormydays_dn.tga.dmeta │ │ ├── stormydays_ft.tga │ │ ├── stormydays_ft.tga.dmeta │ │ ├── stormydays_lf.tga │ │ ├── stormydays_lf.tga.dmeta │ │ ├── stormydays_rt.tga │ │ ├── stormydays_rt.tga.dmeta │ │ ├── stormydays_up.tga │ │ └── stormydays_up.tga.dmeta │ ├── wood_crate_ambientOcclusion.tga │ ├── wood_crate_ambientOcclusion.tga.dmeta │ ├── wood_crate_basecolor.tga │ ├── wood_crate_basecolor.tga.dmeta │ ├── wood_crate_emissive.tga │ ├── wood_crate_emissive.tga.dmeta │ ├── wood_crate_height.tga │ ├── wood_crate_height.tga.dmeta │ ├── wood_crate_normal.tga │ └── wood_crate_normal.tga.dmeta ├── include ├── GL │ ├── eglew.h │ ├── glew.h │ ├── glxew.h │ └── wglew.h ├── assimp │ ├── Compiler │ │ ├── poppack1.h │ │ ├── pstdint.h │ │ └── pushpack1.h │ ├── DefaultLogger.hpp │ ├── Exporter.hpp │ ├── IOStream.hpp │ ├── IOSystem.hpp │ ├── Importer.hpp │ ├── LogStream.hpp │ ├── Logger.hpp │ ├── NullLogger.hpp │ ├── ProgressHandler.hpp │ ├── ai_assert.h │ ├── anim.h │ ├── camera.h │ ├── cexport.h │ ├── cfileio.h │ ├── cimport.h │ ├── color4.h │ ├── color4.inl │ ├── config.h │ ├── defs.h │ ├── importerdesc.h │ ├── light.h │ ├── material.h │ ├── material.inl │ ├── matrix3x3.h │ ├── matrix3x3.inl │ ├── matrix4x4.h │ ├── matrix4x4.inl │ ├── mesh.h │ ├── metadata.h │ ├── postprocess.h │ ├── quaternion.h │ ├── quaternion.inl │ ├── scene.h │ ├── texture.h │ ├── types.h │ ├── vector2.h │ ├── vector2.inl │ ├── vector3.h │ ├── vector3.inl │ └── version.h ├── freetype │ └── config │ │ ├── ftconfig.h │ │ └── ftoption.h ├── ft2build.h ├── glm │ ├── CMakeLists.txt │ ├── common.hpp │ ├── detail │ │ ├── _features.hpp │ │ ├── _fixes.hpp │ │ ├── _noise.hpp │ │ ├── _swizzle.hpp │ │ ├── _swizzle_func.hpp │ │ ├── _vectorize.hpp │ │ ├── dummy.cpp │ │ ├── func_common.hpp │ │ ├── func_common.inl │ │ ├── func_common_simd.inl │ │ ├── func_exponential.hpp │ │ ├── func_exponential.inl │ │ ├── func_exponential_simd.inl │ │ ├── func_geometric.hpp │ │ ├── func_geometric.inl │ │ ├── func_geometric_simd.inl │ │ ├── func_integer.hpp │ │ ├── func_integer.inl │ │ ├── func_integer_simd.inl │ │ ├── func_matrix.hpp │ │ ├── func_matrix.inl │ │ ├── func_matrix_simd.inl │ │ ├── func_packing.hpp │ │ ├── func_packing.inl │ │ ├── func_packing_simd.inl │ │ ├── func_trigonometric.hpp │ │ ├── func_trigonometric.inl │ │ ├── func_trigonometric_simd.inl │ │ ├── func_vector_relational.hpp │ │ ├── func_vector_relational.inl │ │ ├── func_vector_relational_simd.inl │ │ ├── glm.cpp │ │ ├── precision.hpp │ │ ├── setup.hpp │ │ ├── type_float.hpp │ │ ├── type_gentype.hpp │ │ ├── type_gentype.inl │ │ ├── type_half.hpp │ │ ├── type_half.inl │ │ ├── type_int.hpp │ │ ├── type_mat.hpp │ │ ├── type_mat.inl │ │ ├── type_mat2x2.hpp │ │ ├── type_mat2x2.inl │ │ ├── type_mat2x3.hpp │ │ ├── type_mat2x3.inl │ │ ├── type_mat2x4.hpp │ │ ├── type_mat2x4.inl │ │ ├── type_mat3x2.hpp │ │ ├── type_mat3x2.inl │ │ ├── type_mat3x3.hpp │ │ ├── type_mat3x3.inl │ │ ├── type_mat3x4.hpp │ │ ├── type_mat3x4.inl │ │ ├── type_mat4x2.hpp │ │ ├── type_mat4x2.inl │ │ ├── type_mat4x3.hpp │ │ ├── type_mat4x3.inl │ │ ├── type_mat4x4.hpp │ │ ├── type_mat4x4.inl │ │ ├── type_mat4x4_simd.inl │ │ ├── type_vec.hpp │ │ ├── type_vec.inl │ │ ├── type_vec1.hpp │ │ ├── type_vec1.inl │ │ ├── type_vec2.hpp │ │ ├── type_vec2.inl │ │ ├── type_vec3.hpp │ │ ├── type_vec3.inl │ │ ├── type_vec4.hpp │ │ ├── type_vec4.inl │ │ └── type_vec4_simd.inl │ ├── exponential.hpp │ ├── ext.hpp │ ├── fwd.hpp │ ├── geometric.hpp │ ├── glm.hpp │ ├── gtc │ │ ├── bitfield.hpp │ │ ├── bitfield.inl │ │ ├── color_encoding.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── constants.hpp │ │ ├── constants.inl │ │ ├── epsilon.hpp │ │ ├── epsilon.inl │ │ ├── functions.hpp │ │ ├── functions.inl │ │ ├── integer.hpp │ │ ├── integer.inl │ │ ├── matrix_access.hpp │ │ ├── matrix_access.inl │ │ ├── matrix_integer.hpp │ │ ├── matrix_inverse.hpp │ │ ├── matrix_inverse.inl │ │ ├── matrix_transform.hpp │ │ ├── matrix_transform.inl │ │ ├── noise.hpp │ │ ├── noise.inl │ │ ├── packing.hpp │ │ ├── packing.inl │ │ ├── quaternion.hpp │ │ ├── quaternion.inl │ │ ├── quaternion_simd.inl │ │ ├── random.hpp │ │ ├── random.inl │ │ ├── reciprocal.hpp │ │ ├── reciprocal.inl │ │ ├── round.hpp │ │ ├── round.inl │ │ ├── type_aligned.hpp │ │ ├── type_precision.hpp │ │ ├── type_precision.inl │ │ ├── type_ptr.hpp │ │ ├── type_ptr.inl │ │ ├── ulp.hpp │ │ ├── ulp.inl │ │ ├── vec1.hpp │ │ └── vec1.inl │ ├── gtx │ │ ├── associated_min_max.hpp │ │ ├── associated_min_max.inl │ │ ├── bit.hpp │ │ ├── bit.inl │ │ ├── closest_point.hpp │ │ ├── closest_point.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── color_space_YCoCg.hpp │ │ ├── color_space_YCoCg.inl │ │ ├── common.hpp │ │ ├── common.inl │ │ ├── compatibility.hpp │ │ ├── compatibility.inl │ │ ├── component_wise.hpp │ │ ├── component_wise.inl │ │ ├── dual_quaternion.hpp │ │ ├── dual_quaternion.inl │ │ ├── euler_angles.hpp │ │ ├── euler_angles.inl │ │ ├── extend.hpp │ │ ├── extend.inl │ │ ├── extended_min_max.hpp │ │ ├── extended_min_max.inl │ │ ├── fast_exponential.hpp │ │ ├── fast_exponential.inl │ │ ├── fast_square_root.hpp │ │ ├── fast_square_root.inl │ │ ├── fast_trigonometry.hpp │ │ ├── fast_trigonometry.inl │ │ ├── float_notmalize.inl │ │ ├── gradient_paint.hpp │ │ ├── gradient_paint.inl │ │ ├── handed_coordinate_space.hpp │ │ ├── handed_coordinate_space.inl │ │ ├── hash.hpp │ │ ├── hash.inl │ │ ├── integer.hpp │ │ ├── integer.inl │ │ ├── intersect.hpp │ │ ├── intersect.inl │ │ ├── io.hpp │ │ ├── io.inl │ │ ├── log_base.hpp │ │ ├── log_base.inl │ │ ├── matrix_cross_product.hpp │ │ ├── matrix_cross_product.inl │ │ ├── matrix_decompose.hpp │ │ ├── matrix_decompose.inl │ │ ├── matrix_interpolation.hpp │ │ ├── matrix_interpolation.inl │ │ ├── matrix_major_storage.hpp │ │ ├── matrix_major_storage.inl │ │ ├── matrix_operation.hpp │ │ ├── matrix_operation.inl │ │ ├── matrix_query.hpp │ │ ├── matrix_query.inl │ │ ├── matrix_transform_2d.hpp │ │ ├── matrix_transform_2d.inl │ │ ├── mixed_product.hpp │ │ ├── mixed_product.inl │ │ ├── norm.hpp │ │ ├── norm.inl │ │ ├── normal.hpp │ │ ├── normal.inl │ │ ├── normalize_dot.hpp │ │ ├── normalize_dot.inl │ │ ├── number_precision.hpp │ │ ├── number_precision.inl │ │ ├── optimum_pow.hpp │ │ ├── optimum_pow.inl │ │ ├── orthonormalize.hpp │ │ ├── orthonormalize.inl │ │ ├── perpendicular.hpp │ │ ├── perpendicular.inl │ │ ├── polar_coordinates.hpp │ │ ├── polar_coordinates.inl │ │ ├── projection.hpp │ │ ├── projection.inl │ │ ├── quaternion.hpp │ │ ├── quaternion.inl │ │ ├── range.hpp │ │ ├── raw_data.hpp │ │ ├── raw_data.inl │ │ ├── rotate_normalized_axis.hpp │ │ ├── rotate_normalized_axis.inl │ │ ├── rotate_vector.hpp │ │ ├── rotate_vector.inl │ │ ├── scalar_multiplication.hpp │ │ ├── scalar_relational.hpp │ │ ├── scalar_relational.inl │ │ ├── spline.hpp │ │ ├── spline.inl │ │ ├── std_based_type.hpp │ │ ├── std_based_type.inl │ │ ├── string_cast.hpp │ │ ├── string_cast.inl │ │ ├── transform.hpp │ │ ├── transform.inl │ │ ├── transform2.hpp │ │ ├── transform2.inl │ │ ├── type_aligned.hpp │ │ ├── type_aligned.inl │ │ ├── type_trait.hpp │ │ ├── type_trait.inl │ │ ├── vector_angle.hpp │ │ ├── vector_angle.inl │ │ ├── vector_query.hpp │ │ ├── vector_query.inl │ │ ├── wrap.hpp │ │ └── wrap.inl │ ├── integer.hpp │ ├── mat2x2.hpp │ ├── mat2x3.hpp │ ├── mat2x4.hpp │ ├── mat3x2.hpp │ ├── mat3x3.hpp │ ├── mat3x4.hpp │ ├── mat4x2.hpp │ ├── mat4x3.hpp │ ├── mat4x4.hpp │ ├── matrix.hpp │ ├── packing.hpp │ ├── simd │ │ ├── common.h │ │ ├── exponential.h │ │ ├── geometric.h │ │ ├── integer.h │ │ ├── matrix.h │ │ ├── packing.h │ │ ├── platform.h │ │ ├── trigonometric.h │ │ └── vector_relational.h │ ├── trigonometric.hpp │ ├── vec2.hpp │ ├── vec3.hpp │ ├── vec4.hpp │ └── vector_relational.hpp └── spdlog │ ├── async.h │ ├── async_logger-inl.h │ ├── async_logger.h │ ├── common-inl.h │ ├── common.h │ ├── details │ ├── circular_q.h │ ├── console_globals.h │ ├── file_helper-inl.h │ ├── file_helper.h │ ├── fmt_helper.h │ ├── log_msg-inl.h │ ├── log_msg.h │ ├── mpmc_blocking_q.h │ ├── null_mutex.h │ ├── os-inl.h │ ├── os.h │ ├── pattern_formatter-inl.h │ ├── pattern_formatter.h │ ├── periodic_worker-inl.h │ ├── periodic_worker.h │ ├── registry-inl.h │ ├── registry.h │ ├── synchronous_factory.h │ ├── thread_pool-inl.h │ └── thread_pool.h │ ├── fmt │ ├── bin_to_hex.h │ ├── bundled │ │ ├── LICENSE.rst │ │ ├── chrono.h │ │ ├── color.h │ │ ├── core.h │ │ ├── format-inl.h │ │ ├── format.h │ │ ├── locale.h │ │ ├── ostream.h │ │ ├── posix.h │ │ ├── printf.h │ │ ├── ranges.h │ │ └── time.h │ ├── fmt.h │ └── ostr.h │ ├── formatter.h │ ├── logger-inl.h │ ├── logger.h │ ├── sinks │ ├── android_sink.h │ ├── ansicolor_sink-inl.h │ ├── ansicolor_sink.h │ ├── base_sink-inl.h │ ├── base_sink.h │ ├── basic_file_sink-inl.h │ ├── basic_file_sink.h │ ├── daily_file_sink.h │ ├── dist_sink.h │ ├── dup_filter_sink.h │ ├── msvc_sink.h │ ├── null_sink.h │ ├── ostream_sink.h │ ├── rotating_file_sink-inl.h │ ├── rotating_file_sink.h │ ├── sink-inl.h │ ├── sink.h │ ├── stdout_color_sinks-inl.h │ ├── stdout_color_sinks.h │ ├── stdout_sinks-inl.h │ ├── stdout_sinks.h │ ├── syslog_sink.h │ ├── systemd_sink.h │ ├── wincolor_sink-inl.h │ └── wincolor_sink.h │ ├── spdlog-inl.h │ ├── spdlog.h │ ├── tweakme.h │ └── version.h └── libs └── x86_64 ├── Debug ├── glew32.dll └── glew32.lib ├── Dist ├── glew32.dll └── glew32.lib └── Release ├── glew32.dll └── glew32.lib /.gitignore: -------------------------------------------------------------------------------- 1 | # Exclude all builds of the application 2 | bin/* 3 | bin-int/* 4 | packages/* 5 | build/* 6 | 7 | *.tlog 8 | 9 | # Engine generated log 10 | log.txt 11 | 12 | # Exclude all Visual Studio artifacts 13 | .vs/* 14 | *.vcxproj 15 | *.vcxproj.filters 16 | *.vcxproj.user 17 | *.sln 18 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendor/freetype"] 2 | path = vendor/freetype 3 | url = https://github.com/aseprite/freetype2.git 4 | [submodule "vendor/cereal"] 5 | path = vendor/cereal 6 | url = https://github.com/USCiLab/cereal.git 7 | [submodule "vendor/sdl2"] 8 | path = vendor/sdl2 9 | url = https://github.com/libsdl-org/SDL.git 10 | [submodule "vendor/assimp"] 11 | path = vendor/assimp 12 | url = https://github.com/assimp/assimp.git 13 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project (DerydocaEngine.Components.Editor) 2 | 3 | include_directories( 4 | src 5 | ../DerydocaEngine/src 6 | ../DerydocaEngine.Components/src 7 | ../DerydocaEngine.Editor/src 8 | ) 9 | 10 | file(GLOB_RECURSE derydocaengine_components_editor_src ./src/*.h ./src/*.cpp) 11 | add_library(${PROJECT_NAME} STATIC ${derydocaengine_components_editor_src}) 12 | 13 | target_precompile_headers(${PROJECT_NAME} PRIVATE "./src/EditorComponentsPch.h") 14 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Components/EditorWindowComponent.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Components\GameComponent.h" 3 | 4 | namespace DerydocaEngine::Components 5 | { 6 | 7 | class EditorWindowComponent : public GameComponent 8 | { 9 | public: 10 | EditorWindowComponent(); 11 | virtual ~EditorWindowComponent(); 12 | 13 | virtual glm::ivec2 getWindowInitialSize() { return {0.0f, 0.0f}; } 14 | virtual glm::vec2 getWindowPadding() { return { -1, -1 }; } 15 | virtual ImGuiWindowFlags getWindowFlags() = 0; 16 | virtual std::string getWindowTitle() = 0; 17 | virtual void renderWindow() = 0; 18 | 19 | virtual void postInit(); 20 | virtual void renderEditorGUI(); 21 | void close() { m_IsOpen = false; } 22 | 23 | SERIALIZE_FUNC_BASE(DerydocaEngine::Components::GameComponent); 24 | protected: 25 | bool m_IsOpen; 26 | std::string m_WindowName; 27 | }; 28 | 29 | } -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Components/ImGuiDemoWindow.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "ImGuiDemoWindow.h" 3 | 4 | namespace DerydocaEngine::Components 5 | { 6 | ImGuiDemoWindow::ImGuiDemoWindow() : 7 | m_Open(true) 8 | { 9 | } 10 | 11 | void ImGuiDemoWindow::update(const float deltaTime) 12 | { 13 | ImGui::ShowDemoWindow(&m_Open); 14 | if (!m_Open) 15 | { 16 | destroy(getGameObject()); 17 | } 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Components/ImGuiDemoWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Components\GameComponent.h" 3 | 4 | namespace DerydocaEngine::Components 5 | { 6 | 7 | class ImGuiDemoWindow : public GameComponent, SelfRegister 8 | { 9 | public: 10 | GENINSTANCE(ImGuiDemoWindow); 11 | 12 | ImGuiDemoWindow(); 13 | 14 | virtual void update(const float deltaTime); 15 | 16 | SERIALIZE_FUNC_BASE(DerydocaEngine::Components::GameComponent); 17 | private: 18 | bool m_Open; 19 | }; 20 | 21 | } 22 | 23 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Components::ImGuiDemoWindow, 0); 24 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Components/InspectorWindow.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "InspectorWindow.h" 3 | #include "Editor\Inspector\InspectorRendererFactory.h" 4 | 5 | namespace DerydocaEngine::Components 6 | { 7 | InspectorWindow::InspectorWindow() 8 | { 9 | m_SelectionGroup = Editor::SelectionManager::getInstance().getPrimarySelectionGroup(); 10 | } 11 | 12 | InspectorWindow::~InspectorWindow() 13 | { 14 | } 15 | 16 | void InspectorWindow::renderWindow() 17 | { 18 | auto selection = m_SelectionGroup->getSelection(); 19 | 20 | if (selection.size() <= 0) 21 | { 22 | ImGui::Text("No objects are selected."); 23 | return; 24 | } 25 | 26 | Editor::Inspector::InspectorRendererFactory::getInstance().renderInspector(selection[0]); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Components/InspectorWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Components\EditorWindowComponent.h" 3 | #include "Editor\SelectionManager.h" 4 | 5 | namespace DerydocaEngine::Components 6 | { 7 | class InspectorWindow : public EditorWindowComponent, SelfRegister 8 | { 9 | public: 10 | GENINSTANCE(InspectorWindow); 11 | 12 | InspectorWindow(); 13 | ~InspectorWindow(); 14 | 15 | virtual void renderWindow(); 16 | virtual std::string getWindowTitle() { return "Inspector"; } 17 | virtual ImGuiWindowFlags getWindowFlags() { return ImGuiWindowFlags_None; } 18 | 19 | SERIALIZE_FUNC_BASE(DerydocaEngine::Components::EditorWindowComponent); 20 | private: 21 | std::shared_ptr m_SelectionGroup; 22 | 23 | }; 24 | 25 | } 26 | 27 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Components::InspectorWindow, 0); 28 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Components/SceneCameraInput/SceneCameraInputStrategy.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "SceneCameraInputStrategy.h" 3 | 4 | namespace DerydocaEngine::Components::SceneCameraInput 5 | { 6 | 7 | SceneCameraInputStrategy::SceneCameraInputStrategy() : 8 | m_isActive(false), 9 | m_keyboard(0), 10 | m_mouse(0) 11 | { 12 | m_keyboard = Input::InputManager::getInstance().getKeyboard(); 13 | m_mouse = Input::InputManager::getInstance().getMouse(); 14 | } 15 | 16 | SceneCameraInputStrategy::~SceneCameraInputStrategy() 17 | { 18 | m_keyboard = nullptr; 19 | m_mouse = nullptr; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Components/SceneCameraInput/WasdControlStrategy.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "SceneCameraInputStrategy.h" 3 | 4 | namespace DerydocaEngine::Components::SceneCameraInput 5 | { 6 | 7 | class WasdControlStrategy : public SceneCameraInputStrategy 8 | { 9 | public: 10 | WasdControlStrategy(); 11 | 12 | virtual void updateActiveState(bool isViewportHovered) override; 13 | virtual void updateCameraTransform(std::shared_ptr cameraTransform) override; 14 | virtual bool updateInput(const float deltaTime, bool isViewportHovered) override; 15 | private: 16 | float m_moveSpeed; 17 | float m_pitch; 18 | float m_pitchSensitivity; 19 | float m_minPitch; 20 | float m_maxPitch; 21 | float m_yaw; 22 | float m_yawSensitivity; 23 | glm::vec3 m_localTranslationDelta; 24 | }; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/CameraInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\Camera.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class CameraInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(CameraInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/FrameStatsInspector.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "FrameStatsInspector.h" 3 | #include "Components\TextRenderer.h" 4 | 5 | void DerydocaEngine::Editor::Inspector::ComponentInspectors::FrameStatsInspector::render(std::shared_ptr object) 6 | { 7 | auto frameStats = std::static_pointer_cast(object); 8 | 9 | ImGui::Text("This component will update a TextRenderer component on the same GameObject with the current framerate."); 10 | 11 | std::weak_ptr textRendererComponent = frameStats->getComponentInChildren(); 12 | if (!textRendererComponent.lock()) 13 | { 14 | ImGui::Text("Please attach a TextRenderer component to this GameObject."); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/FrameStatsInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\FrameStats.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class FrameStatsInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(FrameStatsInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/KeyboardMoverInspector.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "KeyboardMoverInspector.h" 3 | 4 | void DerydocaEngine::Editor::Inspector::ComponentInspectors::KeyboardMoverInspector::render(std::shared_ptr object) 5 | { 6 | ImGui::TextColored({ 1.0, 0.0, 0.0, 1.0 }, "This component is intended to be used exclusively for the editor."); 7 | } 8 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/KeyboardMoverInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\KeyboardMover.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class KeyboardMoverInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(KeyboardMoverInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/LightInspector.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "LightInspector.h" 3 | 4 | void DerydocaEngine::Editor::Inspector::ComponentInspectors::LightInspector::render(std::shared_ptr object) 5 | { 6 | auto light = std::static_pointer_cast(object); 7 | 8 | ImGui::Text("A more comprehensive inspector will come in the future."); 9 | 10 | ImGui::ColorEdit4("Color", &light->getColor().r); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/LightInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\Light.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class LightInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(LightInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/MeshRendererInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\MeshRenderer.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class MeshRendererInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(MeshRendererInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/RotatorInspector.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "RotatorInspector.h" 3 | 4 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 5 | { 6 | 7 | void RotatorInspector::render(std::shared_ptr object) 8 | { 9 | auto rotator = std::static_pointer_cast(object); 10 | 11 | ImGui::DragFloat("Speed", &rotator->getSpeed()); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/RotatorInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\Rotator.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class RotatorInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(RotatorInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/SpriteRendererInspector.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "SpriteRendererInspector.h" 3 | 4 | void DerydocaEngine::Editor::Inspector::ComponentInspectors::SpriteRendererInspector::render(std::shared_ptr object) 5 | { 6 | auto SpriteRenderer = std::static_pointer_cast(object); 7 | 8 | ImGui::Text("A more comprehensive inspector will come in the future."); 9 | 10 | Color color = SpriteRenderer->getColor(); 11 | if (ImGui::ColorEdit4("Color", &color.r)) 12 | { 13 | SpriteRenderer->setColor(color); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/SpriteRendererInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\SpriteRenderer.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class SpriteRendererInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(SpriteRendererInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/TextRendererInspector.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "TextRendererInspector.h" 3 | 4 | void DerydocaEngine::Editor::Inspector::ComponentInspectors::TextRendererInspector::render(std::shared_ptr object) 5 | { 6 | auto textRenderer = std::static_pointer_cast(object); 7 | 8 | ImGui::Text("A more comprehensive inspector will come in the future."); 9 | 10 | Color color = textRenderer->getColor(); 11 | if (ImGui::ColorEdit4("Color", &color.r)) 12 | { 13 | textRenderer->setColor(color); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/TextRendererInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\TextRenderer.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class TextRendererInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(TextRendererInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/WasdMoverInspector.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | #include "WasdMoverInspector.h" 3 | 4 | void DerydocaEngine::Editor::Inspector::ComponentInspectors::WasdMoverInspector::render(std::shared_ptr object) 5 | { 6 | auto wasdMover = std::static_pointer_cast(object); 7 | 8 | ImGui::TextColored({1.0, 0.0, 0.0, 1.0}, "This component is intended to be used exclusively for the editor. %s", wasdMover->getClassName()); 9 | } 10 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/Editor/ComponentInspectors/WasdMoverInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Editor\Inspector\InspectorRendererFactory.h" 3 | #include "Components\WasdMover.h" 4 | 5 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 6 | { 7 | 8 | class WasdMoverInspector : public InspectorRenderer, RegisterInspectorRenderer 9 | { 10 | REGISTER_INSPECTOR(WasdMoverInspector); 11 | 12 | virtual void render(std::shared_ptr object); 13 | }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/EditorComponentsPch.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorComponentsPch.h" 2 | -------------------------------------------------------------------------------- /DerydocaEngine.Components.Editor/src/EditorComponentsPch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "EditorPch.h" 4 | #include "DerydocaEngineCommonPch.h" 5 | -------------------------------------------------------------------------------- /DerydocaEngine.Components/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project (DerydocaEngine.Components) 2 | 3 | include_directories( 4 | src 5 | ../DerydocaEngine/src 6 | ) 7 | 8 | file(GLOB_RECURSE derydocaengine_components_src ./src/*.h ./src/*.cpp) 9 | add_library(${PROJECT_NAME} STATIC ${derydocaengine_components_src}) 10 | 11 | target_precompile_headers(${PROJECT_NAME} PRIVATE "./src/EngineComponentsPch.h") 12 | -------------------------------------------------------------------------------- /DerydocaEngine.Components/src/Components/FrameStats.cpp: -------------------------------------------------------------------------------- 1 | #include "EngineComponentsPch.h" 2 | #include "FrameStats.h" 3 | 4 | namespace DerydocaEngine::Components 5 | { 6 | 7 | FrameStats::FrameStats() : 8 | m_textRenderer() 9 | { 10 | } 11 | 12 | FrameStats::~FrameStats() 13 | { 14 | } 15 | 16 | void FrameStats::postInit() 17 | { 18 | m_textRenderer = getComponentInChildren(); 19 | } 20 | 21 | void FrameStats::update(const float deltaTime) 22 | { 23 | float fps = 1.0f / deltaTime; 24 | std::ostringstream s; 25 | s << "FPS: " << fps; 26 | m_textRenderer->setText(s.str()); 27 | } 28 | 29 | SERIALIZE_FUNC_LOAD(archive, FrameStats) 30 | { 31 | archive(SERIALIZE_BASE(DerydocaEngine::Components::GameComponent)); 32 | } 33 | 34 | SERIALIZE_FUNC_SAVE(archive, FrameStats) 35 | { 36 | archive(SERIALIZE_BASE(DerydocaEngine::Components::GameComponent)); 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /DerydocaEngine.Components/src/Components/FrameStats.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Components\GameComponent.h" 3 | #include "TextRenderer.h" 4 | 5 | namespace DerydocaEngine::Components 6 | { 7 | 8 | class FrameStats : public GameComponent, SelfRegister 9 | { 10 | public: 11 | GENINSTANCE(FrameStats); 12 | SERIALIZE_FUNC_DEFINITIONS; 13 | FrameStats(); 14 | ~FrameStats(); 15 | 16 | virtual void postInit(); 17 | virtual void update(const float deltaTime); 18 | private: 19 | std::shared_ptr m_textRenderer; 20 | }; 21 | 22 | } 23 | 24 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Components::FrameStats, 0); 25 | -------------------------------------------------------------------------------- /DerydocaEngine.Components/src/Components/GameComponent.cpp: -------------------------------------------------------------------------------- 1 | #include "EngineComponentsPch.h" 2 | #include "GameComponent.h" 3 | 4 | namespace DerydocaEngine::Components 5 | { 6 | 7 | void GameComponent::destroy(std::shared_ptr objectToDestroy) 8 | { 9 | objectToDestroy->destroy(); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /DerydocaEngine.Components/src/Components/GameComponentFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "GameObject.h" 3 | #include 4 | #include 5 | 6 | namespace DerydocaEngine::Components { 7 | 8 | typedef std::shared_ptr (*gameComponentInstanceGenerator)(); 9 | 10 | class GameComponentFactory 11 | { 12 | public: 13 | static GameComponentFactory& getInstance() { 14 | static GameComponentFactory instance; 15 | return instance; 16 | } 17 | 18 | bool registerGenerator(const std::string& name, const gameComponentInstanceGenerator& funcCreate); 19 | std::shared_ptr generate(const std::string& name); 20 | 21 | private: 22 | GameComponentFactory(); 23 | GameComponentFactory(GameComponentFactory const&); 24 | ~GameComponentFactory(); 25 | 26 | std::map s_methods; 27 | }; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /DerydocaEngine.Components/src/Components/Rotator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Components\GameComponent.h" 3 | 4 | namespace DerydocaEngine::Components 5 | { 6 | 7 | class Rotator : public GameComponent, SelfRegister 8 | { 9 | public: 10 | GENINSTANCE(Rotator); 11 | SERIALIZE_FUNC_DEFINITIONS; 12 | 13 | Rotator(); 14 | Rotator(float rotationSpeed); 15 | ~Rotator(); 16 | 17 | void update(const float deltaTime); 18 | 19 | inline void setSpeed(float const& rotSpeed) { m_Speed = rotSpeed; } 20 | inline float& getSpeed() { return m_Speed; } 21 | inline float getSpeed() const { return m_Speed; } 22 | private: 23 | float m_Value; 24 | float m_Speed; 25 | }; 26 | 27 | } 28 | 29 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Components::Rotator, 0); 30 | -------------------------------------------------------------------------------- /DerydocaEngine.Components/src/EngineComponentsPch.cpp: -------------------------------------------------------------------------------- 1 | #include "EngineComponentsPch.h" 2 | -------------------------------------------------------------------------------- /DerydocaEngine.Components/src/EngineComponentsPch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "DerydocaEngineCommonPch.h" 4 | 5 | // Misc vendors 6 | #include 7 | #include 8 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor.UI/src/Editor/Execution/CommandLineArgs.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | namespace DerydocaEngine::Editor::Execution 7 | { 8 | 9 | using argumentCollection = std::map>; 10 | 11 | class CommandLineArgs 12 | { 13 | public: 14 | CommandLineArgs(int const& argc, char* argv[]); 15 | ~CommandLineArgs(); 16 | 17 | std::string getExecutablePath() const { return m_executablePath; } 18 | bool keyExists(std::string const& key); 19 | std::vector getValues(std::string const& key); 20 | private: 21 | void processArguments(int const& argc, char* argv[]); 22 | 23 | std::string m_executablePath; 24 | argumentCollection m_arguments; 25 | }; 26 | 27 | } -------------------------------------------------------------------------------- /DerydocaEngine.Editor.UI/src/EditorPch.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorPch.h" 2 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor.UI/src/EditorPch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "DerydocaEngineCommonPch.h" 3 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor.UI/src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/DerydocaEngine.Editor.UI/src/main.cpp -------------------------------------------------------------------------------- /DerydocaEngine.Editor.UI/src/stbi_impl.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorPch.h" 2 | 3 | #define STB_IMAGE_IMPLEMENTATION 4 | #include "vendor\stb_image.h" 5 | #define STBI_MSC_SECURE_CRT 6 | #define STB_IMAGE_WRITE_IMPLEMENTATION 7 | #include "vendor\stb_image_write.h" 8 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project (DerydocaEngine.Editor) 2 | 3 | include_directories( 4 | src 5 | ../DerydocaEngine/src 6 | ../DerydocaEngine.Components/src 7 | ../DerydocaEngine.Components.Editor/src 8 | ) 9 | 10 | file(GLOB_RECURSE derydocaengine_editor_src ./src/*.h ./src/*.cpp) 11 | add_library(${PROJECT_NAME} STATIC ${derydocaengine_editor_src}) 12 | 13 | target_precompile_headers(${PROJECT_NAME} PRIVATE "./src/EditorPch.h") 14 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Dgui/InputProjection.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorPch.h" 2 | #include "InputProjection.h" 3 | 4 | namespace DerydocaEngine::Dgui 5 | { 6 | 7 | bool InputProjection( 8 | const std::string& label, 9 | Rendering::Projection& projection 10 | ) 11 | { 12 | bool updated = false; 13 | 14 | ImGui::Text(label.c_str()); 15 | ImGui::TreePush(); 16 | updated |= ImGui::SliderFloat("FOV", &projection.getFov(), 1.0f, 180.0f); 17 | updated |= ImGui::SliderFloat("Near Plane", &projection.getZNear(), 0.01f, 100.0f); 18 | updated |= ImGui::SliderFloat("Far Plane", &projection.getZFar(), 0.01f, 100.0f); 19 | ImGui::TreePop(); 20 | 21 | if (updated) 22 | { 23 | projection.recalculateProjectionMatrix(); 24 | } 25 | 26 | return updated; 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Dgui/InputProjection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Rendering\Projection.h" 3 | 4 | namespace DerydocaEngine::Dgui 5 | { 6 | 7 | bool InputProjection( 8 | const std::string& label, 9 | Rendering::Projection& projection 10 | ); 11 | 12 | } -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Dgui/InputQuaternion.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorPch.h" 2 | #include "InputQuaternion.h" 3 | 4 | namespace DerydocaEngine::Dgui 5 | { 6 | 7 | bool InputQuaternion( 8 | const std::string& label, 9 | glm::quat& value, 10 | float speed, 11 | float min, 12 | float max, 13 | const char *format, 14 | float power 15 | ) 16 | { 17 | glm::vec3 eulerValues = glm::degrees(glm::eulerAngles(value)); 18 | bool modified = ImGui::DragFloat3( 19 | label.c_str(), 20 | &eulerValues[0], 21 | speed, 22 | min, 23 | max, 24 | format, 25 | power 26 | ); 27 | if (modified) 28 | { 29 | value = glm::quat(glm::radians(eulerValues)); 30 | } 31 | return modified; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Dgui/InputQuaternion.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Dgui 4 | { 5 | 6 | bool InputQuaternion( 7 | const std::string& label, 8 | glm::quat& value, 9 | float speed = 1.0f, 10 | float min = 0.0f, 11 | float max = 0.0f, 12 | const char *format = "%.3f", 13 | float power = 1.0f 14 | ); 15 | 16 | } -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Dgui/InputText.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Dgui 4 | { 5 | struct InputTextCallback_UserData 6 | { 7 | std::string* Str; 8 | ImGuiInputTextCallback ChainCallback; 9 | void* ChainCallbackUserData; 10 | }; 11 | 12 | static int InputTextCallback(ImGuiInputTextCallbackData* data); 13 | 14 | bool InputText( 15 | std::string label, 16 | std::string& str, 17 | ImGuiInputTextFlags flags = ImGuiInputTextFlags_None, 18 | ImGuiInputTextCallback callback = nullptr, 19 | void* user_data = nullptr 20 | ); 21 | 22 | } -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Dgui/ResourcePicker.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Resource.h" 3 | 4 | namespace DerydocaEngine::Dgui 5 | { 6 | 7 | bool ResourcePicker( 8 | const std::string label, 9 | std::shared_ptr resource, 10 | Resources::ResourceType resourceType, 11 | std::shared_ptr& selectedResource 12 | ); 13 | 14 | } -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/EditorGUI.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Editor 4 | { 5 | 6 | class EditorGUI 7 | { 8 | public: 9 | static EditorGUI& getInstance() 10 | { 11 | static EditorGUI instance = EditorGUI(); 12 | return instance; 13 | } 14 | 15 | void render(); 16 | 17 | private: 18 | EditorGUI(); 19 | ~EditorGUI(); 20 | EditorGUI(const EditorGUI&); 21 | 22 | }; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/Inspector/ComponentInspectors/TransformInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EditorPch.h" 3 | #include "Editor\Inspector\InspectorRendererFactory.h" 4 | #include "Components\Transform.h" 5 | #include "Dgui\InputQuaternion.h" 6 | 7 | namespace DerydocaEngine::Editor::Inspector::ComponentInspectors 8 | { 9 | 10 | class TransformInspector : public InspectorRenderer 11 | { 12 | virtual void render(std::shared_ptr object) 13 | { 14 | auto transform = std::static_pointer_cast(object); 15 | 16 | ImGui::DragFloat3("Position", &transform->getPosition()[0], 0.005f); 17 | Dgui::InputQuaternion("Rotation", transform->getQuaternion()); 18 | ImGui::DragFloat3("Scale", &transform->getScale()[0], 0.005f); 19 | } 20 | }; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/Inspector/ResourceInspectors/CubemapResourceInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EditorPch.h" 3 | #include "Editor\Inspector\InspectorRendererFactory.h" 4 | #include "Resources\CubemapResource.h" 5 | #include "Rendering\Texture.h" 6 | 7 | namespace DerydocaEngine::Editor::Inspector::ResourceInspectors 8 | { 9 | 10 | class CubemapResourceInspector : public InspectorRenderer 11 | { 12 | virtual void render(std::shared_ptr object) 13 | { 14 | auto resource = std::static_pointer_cast(object); 15 | 16 | ImGui::Text("Cubemap"); 17 | ImGui::Text(resource->getName().c_str()); 18 | } 19 | }; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/Inspector/ResourceInspectors/FontResourceInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EditorPch.h" 3 | #include "Editor\Inspector\InspectorRendererFactory.h" 4 | #include "Resources\FontResource.h" 5 | 6 | namespace DerydocaEngine::Editor::Inspector::ResourceInspectors 7 | { 8 | 9 | class FontResourceInspector : public InspectorRenderer 10 | { 11 | virtual void render(std::shared_ptr object) 12 | { 13 | auto resource = std::static_pointer_cast(object); 14 | 15 | ImGui::Text("Font"); 16 | ImGui::Text(resource->getName().c_str()); 17 | } 18 | }; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/Inspector/ResourceInspectors/LevelResourceInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EditorPch.h" 3 | #include "Editor\Inspector\InspectorRendererFactory.h" 4 | #include "Resources\LevelResource.h" 5 | #include "Editor\Inspector\InspectorRenderer.h" 6 | #include "Scenes\SceneManager.h" 7 | 8 | namespace DerydocaEngine::Editor::Inspector::ResourceInspectors 9 | { 10 | 11 | class LevelResourceInspector : public InspectorRenderer 12 | { 13 | virtual void render(std::shared_ptr object) 14 | { 15 | auto levelResource = std::static_pointer_cast(object); 16 | 17 | ImGui::Text(levelResource->getName().c_str()); 18 | if (ImGui::Button("Load")) 19 | { 20 | Scenes::SceneManager::getInstance().LoadScene(levelResource); 21 | } 22 | } 23 | }; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/Inspector/ResourceInspectors/MaterialResourceInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EditorPch.h" 3 | #include "Editor\Inspector\InspectorRendererFactory.h" 4 | #include "Rendering\Material.h" 5 | #include "Resources\MaterialResource.h" 6 | 7 | namespace DerydocaEngine::Editor::Inspector::ResourceInspectors 8 | { 9 | 10 | class MaterialResourceInspector : public InspectorRenderer 11 | { 12 | virtual void render(std::shared_ptr object) 13 | { 14 | auto resource = std::static_pointer_cast(object); 15 | 16 | ImGui::Text("Material"); 17 | ImGui::Text(resource->getName().c_str()); 18 | } 19 | }; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/Inspector/ResourceInspectors/RasterFontInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EditorPch.h" 3 | #include "Editor\Inspector\InspectorRendererFactory.h" 4 | #include "Resources\RasterFontResource.h" 5 | 6 | namespace DerydocaEngine::Editor::Inspector::ResourceInspectors 7 | { 8 | 9 | class RasterFontResourceInspector : public InspectorRenderer 10 | { 11 | virtual void render(std::shared_ptr object) 12 | { 13 | auto resource = std::static_pointer_cast(object); 14 | 15 | ImGui::Text("Raster Font"); 16 | ImGui::Text(resource->getName().c_str()); 17 | } 18 | }; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/Inspector/ResourceInspectors/SpriteSheetResourceInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EditorPch.h" 3 | #include "Editor\Inspector\InspectorRendererFactory.h" 4 | #include "Resources\SpriteSheetResource.h" 5 | 6 | namespace DerydocaEngine::Editor::Inspector::ResourceInspectors 7 | { 8 | 9 | class SpriteSheetResourceInspector : public InspectorRenderer 10 | { 11 | virtual void render(std::shared_ptr object) 12 | { 13 | auto resource = std::static_pointer_cast(object); 14 | 15 | ImGui::Text("Sprite Sheet"); 16 | ImGui::Text(resource->getName().c_str()); 17 | } 18 | }; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/Inspector/UndefinedInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EditorPch.h" 3 | #include "InspectorRendererFactory.h" 4 | #include "Resources\LevelResource.h" 5 | #include "Editor\Inspector\InspectorRenderer.h" 6 | #include "Scenes\SceneManager.h" 7 | 8 | namespace DerydocaEngine::Editor::Inspector 9 | { 10 | 11 | class UndefinedInspector : public InspectorRenderer 12 | { 13 | virtual void render(std::shared_ptr object) 14 | { 15 | ImGui::Text("There is no inspector defined for this object type."); 16 | auto resource = std::static_pointer_cast(object); 17 | } 18 | }; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/SelectionGroup.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Object.h" 3 | 4 | namespace DerydocaEngine::Editor 5 | { 6 | 7 | class SelectionGroup 8 | { 9 | public: 10 | SelectionGroup() : 11 | m_selection() 12 | {} 13 | 14 | void select(const std::weak_ptr selection) 15 | { 16 | m_selection.clear(); 17 | m_selection.push_back(selection.lock()); 18 | } 19 | 20 | bool isSelected(std::shared_ptr object) const 21 | { 22 | for (auto selectedObject : m_selection) 23 | { 24 | if (object == selectedObject) 25 | { 26 | return true; 27 | } 28 | } 29 | return false; 30 | } 31 | 32 | std::vector> getSelection() const { return m_selection; } 33 | 34 | private: 35 | std::vector> m_selection; 36 | 37 | }; 38 | 39 | } -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/SelectionManager.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorPch.h" 2 | #include "SelectionManager.h" 3 | 4 | namespace DerydocaEngine::Editor 5 | { 6 | 7 | SelectionManager::SelectionManager() : 8 | m_selectionGroups(MAX_SELECTION_GROUPS) 9 | { 10 | for (int i = 0; i < MAX_SELECTION_GROUPS; i++) 11 | { 12 | m_selectionGroups[0] = std::make_shared(); 13 | } 14 | } 15 | 16 | SelectionManager::~SelectionManager() 17 | { 18 | } 19 | 20 | std::shared_ptr DerydocaEngine::Editor::SelectionManager::getPrimarySelectionGroup() const 21 | { 22 | return m_selectionGroups[0]; 23 | } 24 | 25 | std::shared_ptr DerydocaEngine::Editor::SelectionManager::getSelectionGroup(int groupId) const 26 | { 27 | return m_selectionGroups.at(groupId); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/Editor/SelectionManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "SelectionGroup.h" 3 | 4 | namespace DerydocaEngine::Editor 5 | { 6 | 7 | const int MAX_SELECTION_GROUPS = 16; 8 | 9 | class SelectionManager 10 | { 11 | public: 12 | static SelectionManager& getInstance() 13 | { 14 | static SelectionManager m_instance; 15 | return m_instance; 16 | } 17 | 18 | std::shared_ptr getPrimarySelectionGroup() const; 19 | std::shared_ptr getSelectionGroup(int groupId) const; 20 | 21 | private: 22 | SelectionManager(); 23 | ~SelectionManager(); 24 | SelectionManager(const SelectionManager&); 25 | 26 | std::vector> m_selectionGroups; 27 | 28 | }; 29 | 30 | } -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/EditorPch.cpp: -------------------------------------------------------------------------------- 1 | #include "EditorPch.h" 2 | -------------------------------------------------------------------------------- /DerydocaEngine.Editor/src/EditorPch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "DerydocaEngineCommonPch.h" 4 | 5 | #include "Dgui\InputText.h" 6 | #include "Dgui\InputProjection.h" -------------------------------------------------------------------------------- /DerydocaEngine/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project (DerydocaEngine.Core) 2 | 3 | include_directories( 4 | src 5 | ../DerydocaEngine.Components/src 6 | ) 7 | 8 | #[[ Other defines that were in the premake file 9 | _CRT_SECURE_NO_WARNINGS 10 | _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING 11 | ]] 12 | add_compile_definitions( 13 | IMGUI_IMPL_OPENGL_LOADER_GLEW 14 | ) 15 | 16 | file(GLOB_RECURSE derydocaengine_src ./src/*.h ./src/*.cpp) 17 | add_library(${PROJECT_NAME} STATIC ${derydocaengine_src}) 18 | 19 | target_precompile_headers(${PROJECT_NAME} PRIVATE "./src/EnginePch.h") 20 | -------------------------------------------------------------------------------- /DerydocaEngine/src/AssetData/CubemapData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::AssetData 4 | { 5 | struct CubemapData 6 | { 7 | uuids::uuid texXPos; 8 | uuids::uuid texXNeg; 9 | uuids::uuid texYPos; 10 | uuids::uuid texYNeg; 11 | uuids::uuid texZPos; 12 | uuids::uuid texZNeg; 13 | 14 | SERIALIZE_FUNC( 15 | SERIALIZE(texXPos), 16 | SERIALIZE(texXNeg), 17 | SERIALIZE(texYPos), 18 | SERIALIZE(texYNeg), 19 | SERIALIZE(texZPos), 20 | SERIALIZE(texZNeg) 21 | ) 22 | }; 23 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/AssetData/SpriteSheetData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include "UI\SpriteReference.h" 5 | #include "Utilities\TexturePackerImage.h" 6 | #include "Serialization\Serialization.h" 7 | 8 | namespace DerydocaEngine::AssetData 9 | { 10 | struct SpriteSheetData 11 | { 12 | SpriteSheetData() {} 13 | SpriteSheetData(const uuids::uuid& textureId) : 14 | textureId(textureId), 15 | sprites() 16 | { 17 | } 18 | 19 | uuids::uuid textureId; 20 | std::vector sprites; 21 | 22 | SERIALIZE_FUNC( 23 | SERIALIZE(textureId), 24 | SERIALIZE(sprites) 25 | ); 26 | }; 27 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/EnginePch.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | -------------------------------------------------------------------------------- /DerydocaEngine/src/EnginePch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "DerydocaEngineCommonPch.h" 4 | 5 | // Misc vendors 6 | #include 7 | #include 8 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/FileType.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace DerydocaEngine::Files 5 | { 6 | 7 | enum FileType 8 | { 9 | UnknownFileType, 10 | IgnoredFileType, 11 | MaterialFileType, 12 | MeshFileType, 13 | ImageFileType, 14 | LevelFileType, 15 | ShaderFileType, 16 | FontType, 17 | RasterFontType, 18 | SpriteSheetFileType, 19 | CubemapFileType 20 | }; 21 | 22 | FileType pathToFileType(std::string const& str); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/CubemapFileSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Files\Serializers\CubemapFileSerializer.h" 3 | #include "Rendering\Material.h" 4 | #include "Rendering\Shader.h" 5 | #include "Resources\CubemapResource.h" 6 | #include "Resources\MaterialResource.h" 7 | 8 | namespace DerydocaEngine::Files::Serializers { 9 | 10 | Files::FileType CubemapSerializer::getFileType() 11 | { 12 | return Files::FileType::CubemapFileType; 13 | } 14 | 15 | std::vector> CubemapSerializer::generateResources(const std::string& assetPath) 16 | { 17 | auto resources = std::vector>(); 18 | 19 | auto resource = std::make_shared(); 20 | resource->generateAndSetId(); 21 | resources.push_back(resource); 22 | 23 | return resources; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/CubemapFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | class CubemapSerializer : public FileTypeSerializer 7 | { 8 | public: 9 | CubemapSerializer() {} 10 | ~CubemapSerializer() {} 11 | 12 | virtual std::vector> generateResources(const std::string& assetPath); 13 | virtual Files::FileType getFileType(); 14 | }; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/FileTypeSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | uuids::uuid generateUuid() 7 | { 8 | static uuids::uuid_time_generator gen; 9 | uuids::uuid id = gen(); 10 | return id; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/FileTypeSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "Files\FileType.h" 4 | 5 | namespace DerydocaEngine::Resources { 6 | struct Resource; 7 | } 8 | 9 | namespace DerydocaEngine::Files::Serializers { 10 | 11 | class FileTypeSerializer 12 | { 13 | public: 14 | virtual ~FileTypeSerializer() {} 15 | virtual std::vector> generateResources(const std::string& assetPath) = 0; 16 | virtual Files::FileType getFileType() = 0; 17 | virtual void postLoadInitialize(std::shared_ptr resource) {} 18 | 19 | friend uuids::uuid generateUuid(); 20 | }; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/FontFileSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Files\Serializers\FontFileSerializer.h" 3 | #include "Resources\FontResource.h" 4 | 5 | namespace DerydocaEngine::Files::Serializers { 6 | 7 | std::vector> FontFileSerializer::generateResources(const std::string& assetPath) 8 | { 9 | auto resources = std::vector>(); 10 | auto resource = std::make_shared(); 11 | resource->generateAndSetId(); 12 | resources.push_back(resource); 13 | return resources; 14 | } 15 | 16 | Files::FileType FontFileSerializer::getFileType() 17 | { 18 | return Files::FileType::FontType; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/FontFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | class FontFileSerializer : public FileTypeSerializer 7 | { 8 | public: 9 | FontFileSerializer() {} 10 | ~FontFileSerializer() {} 11 | 12 | virtual std::vector> generateResources(const std::string& assetPath); 13 | Files::FileType getFileType(); 14 | }; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/ImageFileSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Files\Serializers\ImageFileSerializer.h" 3 | #include "Resources\TextureResource.h" 4 | 5 | namespace DerydocaEngine::Files::Serializers { 6 | 7 | std::vector> ImageFileSerializer::generateResources(const std::string& assetPath) 8 | { 9 | auto resources = std::vector>(); 10 | auto resource = std::make_shared(); 11 | resource->generateAndSetId(); 12 | resources.push_back(resource); 13 | return resources; 14 | } 15 | 16 | Files::FileType ImageFileSerializer::getFileType() 17 | { 18 | return Files::FileType::ImageFileType; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/ImageFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | class ImageFileSerializer : public FileTypeSerializer 7 | { 8 | public: 9 | ImageFileSerializer() {} 10 | ~ImageFileSerializer() {} 11 | 12 | virtual std::vector> generateResources(const std::string& assetPath); 13 | Files::FileType getFileType(); 14 | }; 15 | 16 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/LevelFileSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Files\Serializers\LevelFileSerializer.h" 3 | #include "Resources\LevelResource.h" 4 | 5 | namespace DerydocaEngine::Files::Serializers { 6 | 7 | std::vector> LevelFileSerializer::generateResources(const std::string& assetPath) 8 | { 9 | auto resources = std::vector>(); 10 | auto resource = std::make_shared(); 11 | resource->generateAndSetId(); 12 | resources.push_back(resource); 13 | return resources; 14 | } 15 | 16 | Files::FileType LevelFileSerializer::getFileType() 17 | { 18 | return Files::FileType::LevelFileType; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/LevelFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | class LevelFileSerializer : public FileTypeSerializer 7 | { 8 | public: 9 | LevelFileSerializer() {}; 10 | ~LevelFileSerializer() {}; 11 | 12 | virtual std::vector> generateResources(const std::string& assetPath); 13 | Files::FileType getFileType(); 14 | }; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/MaterialFileSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Files\Serializers\MaterialFileSerializer.h" 3 | #include "Rendering\Material.h" 4 | #include "Rendering\Shader.h" 5 | #include "Resources\CubemapResource.h" 6 | #include "Resources\MaterialResource.h" 7 | 8 | namespace DerydocaEngine::Files::Serializers { 9 | 10 | Files::FileType MaterialSerializer::getFileType() 11 | { 12 | return Files::FileType::MaterialFileType; 13 | } 14 | 15 | std::vector> MaterialSerializer::generateResources(const std::string& assetPath) 16 | { 17 | auto resources = std::vector>(); 18 | 19 | auto resource = std::make_shared(); 20 | resource->generateAndSetId(); 21 | resources.push_back(resource); 22 | 23 | return resources; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/MaterialFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | class MaterialSerializer : public FileTypeSerializer 7 | { 8 | public: 9 | MaterialSerializer() {} 10 | ~MaterialSerializer() {} 11 | 12 | virtual std::vector> generateResources(const std::string& assetPath); 13 | virtual Files::FileType getFileType(); 14 | }; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/MeshFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | #include "assimp\cimport.h" 4 | #include "assimp\scene.h" 5 | #include "assimp\postprocess.h" 6 | 7 | namespace DerydocaEngine::Files::Serializers { 8 | 9 | class MeshSerializer : public FileTypeSerializer 10 | { 11 | public: 12 | MeshSerializer() {} 13 | ~MeshSerializer() {} 14 | 15 | virtual std::vector> generateResources(const std::string& assetPath); 16 | Files::FileType getFileType(); 17 | 18 | }; 19 | 20 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/RasterFontFileSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Files\Serializers\RasterFontFileSerializer.h" 3 | #include "Resources\RasterFontResource.h" 4 | 5 | namespace DerydocaEngine::Files::Serializers { 6 | 7 | std::vector> RasterFontFileSerializer::generateResources(const std::string& assetPath) 8 | { 9 | auto resources = std::vector>(); 10 | auto resource = std::make_shared(); 11 | resource->generateAndSetId(); 12 | resources.push_back(resource); 13 | return resources; 14 | } 15 | 16 | Files::FileType RasterFontFileSerializer::getFileType() 17 | { 18 | return Files::FileType::RasterFontType; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/RasterFontFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | class RasterFontFileSerializer : public FileTypeSerializer 7 | { 8 | public: 9 | RasterFontFileSerializer() {} 10 | ~RasterFontFileSerializer() {} 11 | 12 | virtual std::vector> generateResources(const std::string& assetPath); 13 | Files::FileType getFileType(); 14 | }; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/ShaderFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | class ShaderFileSerializer : public FileTypeSerializer 7 | { 8 | public: 9 | ShaderFileSerializer() {}; 10 | ~ShaderFileSerializer() {}; 11 | 12 | virtual std::vector> generateResources(const std::string& assetPath); 13 | Files::FileType getFileType(); 14 | virtual void postLoadInitialize(std::shared_ptr resource); 15 | }; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/SpriteSheetFileSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Files\Serializers\SpriteSheetFileSerializer.h" 3 | #include "Resources\SpriteSheetResource.h" 4 | 5 | namespace DerydocaEngine::Files::Serializers { 6 | 7 | std::vector> SpriteSheetFileSerializer::generateResources(const std::string& assetPath) 8 | { 9 | auto resources = std::vector>(); 10 | auto resource = std::make_shared(); 11 | resource->generateAndSetId(); 12 | resources.push_back(resource); 13 | return resources; 14 | } 15 | 16 | Files::FileType SpriteSheetFileSerializer::getFileType() 17 | { 18 | return Files::FileType::SpriteSheetFileType; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Files/Serializers/SpriteSheetFileSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Files\Serializers\FileTypeSerializer.h" 3 | 4 | namespace DerydocaEngine::Files::Serializers { 5 | 6 | class SpriteSheetFileSerializer : public FileTypeSerializer 7 | { 8 | public: 9 | SpriteSheetFileSerializer() {} 10 | ~SpriteSheetFileSerializer() {} 11 | 12 | virtual std::vector> generateResources(const std::string& assetPath); 13 | Files::FileType getFileType(); 14 | }; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Helpers/AssimpUtils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "assimp\cimport.h" 7 | #include "assimp\scene.h" 8 | #include "assimp\postprocess.h" 9 | 10 | namespace DerydocaEngine::Helpers::AssimpUtils 11 | { 12 | 13 | glm::mat4 aiToGlm(const aiMatrix4x4& matrix); 14 | 15 | glm::vec3 aiToGlm(const aiVector3D& vec); 16 | 17 | glm::quat aiToGlm(const aiQuaternion& quat); 18 | 19 | aiNode* findNode(aiNode* node, const aiString& name); 20 | 21 | void scanNodeChildren(aiNode*& node, std::function func); 22 | 23 | void scanNodeParents(aiNode*& node, std::function func); 24 | 25 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Helpers/StringUtils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace DerydocaEngine 5 | { 6 | 7 | bool endsWith(std::string const& string, std::string const& suffix); 8 | std::string getFileExtension(std::string const& path); 9 | void toLower(std::string& str); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Input/ButtonState.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Input\ButtonState.h" 3 | 4 | namespace DerydocaEngine::Input 5 | { 6 | 7 | ButtonState::ButtonState(unsigned int const& initialState) : 8 | m_currentState(initialState), 9 | m_downStates(0), 10 | m_upStates(0) 11 | { 12 | } 13 | 14 | ButtonState::~ButtonState() 15 | { 16 | } 17 | 18 | void ButtonState::update(unsigned int const& currentState) 19 | { 20 | unsigned int changedStates = currentState ^ m_currentState; 21 | m_downStates = changedStates & currentState; 22 | m_upStates = changedStates & (~currentState); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Input/InputManager.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Input\InputManager.h" 3 | 4 | namespace DerydocaEngine::Input 5 | { 6 | 7 | InputManager::InputManager() 8 | { 9 | m_keyboard.init(); 10 | m_mouse.init(); 11 | } 12 | 13 | InputManager::~InputManager() 14 | { 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Input/InputManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "Input\Keyboard.h" 4 | #include "Input\Mouse.h" 5 | 6 | namespace DerydocaEngine::Input 7 | { 8 | 9 | class InputManager 10 | { 11 | public: 12 | static InputManager& getInstance() 13 | { 14 | static InputManager instance; 15 | return instance; 16 | } 17 | 18 | Keyboard* getKeyboard() { return &m_keyboard; } 19 | Mouse* getMouse() { return &m_mouse; } 20 | 21 | void operator=(InputManager const&) = delete; 22 | private: 23 | InputManager(); 24 | ~InputManager(); 25 | 26 | InputManager(InputManager const&); 27 | 28 | Keyboard m_keyboard; 29 | Mouse m_mouse; 30 | }; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Input/Key.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Input\Key.h" 3 | 4 | namespace DerydocaEngine::Input 5 | { 6 | 7 | Key::Key() 8 | { 9 | m_isDown = false; 10 | m_downTime = 0; 11 | } 12 | 13 | Key::~Key() 14 | { 15 | } 16 | 17 | void Key::setState(bool const& isDown, unsigned long const& tick) { 18 | 19 | if (m_prevDownState != isDown) 20 | { 21 | m_stateChangeTick = tick; 22 | } 23 | m_prevDownState = m_isDown; 24 | m_isDown = isDown; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Input/Key.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Input 4 | { 5 | 6 | struct Key 7 | { 8 | public: 9 | Key(); 10 | ~Key(); 11 | 12 | unsigned long getStateChangeTick() const { return m_stateChangeTick; } 13 | inline bool isDown() const { return m_isDown; } 14 | void setState(bool const& isDown, unsigned long const& tick); 15 | private: 16 | unsigned int m_downTime; 17 | bool m_isDown; 18 | bool m_prevDownState; 19 | unsigned long m_stateChangeTick = 0; 20 | }; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Input/Keyboard.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Input\Key.h" 3 | 4 | namespace DerydocaEngine::Input 5 | { 6 | 7 | class Keyboard 8 | { 9 | public: 10 | Keyboard(); 11 | ~Keyboard(); 12 | 13 | void init(); 14 | void update(); 15 | bool isKeyDown(int const& keycode) const; 16 | bool isKeyDownFrame(int const& keycode) const; 17 | bool isKeyUpFrame(int const& keycode) const; 18 | void setKeyState(int const& keycode, bool const& isDown); 19 | private: 20 | const int m_numkeys = 512; 21 | Key m_keys[512]; 22 | unsigned long m_tick = 0; 23 | }; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /DerydocaEngine/src/IntRect.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine 4 | { 5 | 6 | struct IntRect 7 | { 8 | public: 9 | IntRect() : 10 | x(0), 11 | y(0), 12 | dx(1), 13 | dy(1) 14 | { 15 | } 16 | 17 | IntRect(int const& x, int const& y, int const& dx, int const& dy) : 18 | x(x), 19 | y(y), 20 | dx(dx), 21 | dy(dy) 22 | { 23 | } 24 | 25 | inline static bool IsRectOverlapping(const IntRect& r1, const IntRect& r2) 26 | { 27 | return r1.dy > r2.y&& r1.y < r2.dy && r1.x < r2.dx && r1.dx > r2.x; 28 | } 29 | 30 | int x, y, dx, dy; 31 | }; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /DerydocaEngine/src/IntRectangle.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "IntRectangle.h" 3 | 4 | namespace DerydocaEngine 5 | { 6 | 7 | bool IntRectangle::IsRectOverlapping(IntRectangle & r1, IntRectangle & r2) 8 | { 9 | int r1l = r1.getX(); 10 | int r1r = r1.getX() + r1.getWidth(); 11 | int r1t = r1.getY() + r1.getHeight(); 12 | int r1b = r1.getY(); 13 | 14 | int r2l = r2.getX(); 15 | int r2r = r2.getX() + r2.getWidth(); 16 | int r2t = r2.getY() + r2.getHeight(); 17 | int r2b = r2.getY(); 18 | 19 | return r1l < r2r && r1r > r2l && r1t > r2b && r1b < r2t; 20 | } 21 | 22 | bool IntRectangle::IsPointInRect(IntRectangle & rect, int const& x, int const& y) 23 | { 24 | if (x < rect.getX() || y < rect.getY() || x > rect.getX() + rect.getWidth() || y > rect.getHeight() + rect.getY()) 25 | { 26 | return false; 27 | } 28 | return true; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Logging/LogDomain.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Logging 4 | { 5 | enum LogDomain 6 | { 7 | Engine = 1, 8 | Client = 2 9 | }; 10 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Logging/LogLevel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Logging 4 | { 5 | 6 | enum LogLevel 7 | { 8 | Trace = 1, 9 | Debug = 2, 10 | Info = 4, 11 | Warn = 8, 12 | Err = 16, 13 | Critical = 32, 14 | All = Trace | Debug | Info | Warn | Err | Critical 15 | }; 16 | 17 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Logging/LogMessage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "Logging/LogLevel.h" 5 | #include "Logging/LogDomain.h" 6 | 7 | namespace DerydocaEngine::Logging 8 | { 9 | 10 | struct LogMessage 11 | { 12 | public: 13 | LogLevel level; 14 | LogDomain domain; 15 | std::chrono::time_point time; 16 | std::string message; 17 | std::string fileName; 18 | std::string functionName; 19 | int line; 20 | 21 | LogMessage(); 22 | LogMessage(const ::spdlog::details::log_msg & msg); 23 | }; 24 | 25 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Math/TypeAliases.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "glm/vec2.hpp" 3 | 4 | using int2 = glm::ivec2; 5 | using float2 = glm::vec2; 6 | using float3 = glm::vec3; 7 | using float4 = glm::vec4; 8 | 9 | // Move this somewhere else 10 | template 11 | using sptr = std::shared_ptr; -------------------------------------------------------------------------------- /DerydocaEngine/src/MeshFlags.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Rendering 4 | { 5 | 6 | enum MeshFlags 7 | { 8 | load_adjacent = 0b00000001 9 | }; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Object.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Object.h" 3 | 4 | namespace DerydocaEngine 5 | { 6 | 7 | std::atomic_uint TypeIdCounter(0); 8 | 9 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Object.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "DerydocaEngineCommonPch.h" 3 | #include "uuid.h" 4 | 5 | namespace DerydocaEngine 6 | { 7 | 8 | template 9 | unsigned long getTypeId() { 10 | static unsigned long id = static_cast(typeid(T).hash_code()); 11 | return id; 12 | } 13 | 14 | #define REGISTER_TYPE_ID(TYPE) virtual unsigned long getTypeId() const { return DerydocaEngine::getTypeId(); } 15 | 16 | class Object 17 | { 18 | public: 19 | Object() : 20 | m_ID() 21 | { 22 | } 23 | 24 | Object(uuids::uuid id) : 25 | m_ID(id) 26 | { 27 | } 28 | 29 | virtual ~Object() {}; 30 | 31 | uuids::uuid getId() const { return m_ID; } 32 | 33 | virtual unsigned long getTypeId() const = 0; 34 | 35 | SERIALIZE_FUNC(SERIALIZE(m_ID)); 36 | 37 | protected: 38 | uuids::uuid m_ID; 39 | }; 40 | 41 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Rendering/CameraManager.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Rendering\CameraManager.h" 3 | 4 | #include "Components\Camera.h" 5 | #include "GameObject.h" 6 | 7 | namespace DerydocaEngine::Rendering 8 | { 9 | 10 | CameraManager::CameraManager() 11 | { 12 | } 13 | 14 | CameraManager::~CameraManager() 15 | { 16 | } 17 | 18 | void CameraManager::renderCamerasToAttachedRenderTextures(const std::vector> scenes) 19 | { 20 | for each (auto cam in m_cameras) 21 | { 22 | cam->renderToAttachedRenderTexture(scenes); 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Rendering/DisplayManager.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Rendering\DisplayManager.h" 3 | 4 | #include "Rendering\Display.h" 5 | 6 | namespace DerydocaEngine::Rendering 7 | { 8 | 9 | void DisplayManager::addDisplay(Display* const& display) 10 | { 11 | m_displays.push_back(display); 12 | } 13 | 14 | Display* DisplayManager::getDisplay(size_t const& index) const 15 | { 16 | if (index >= m_displays.size()) 17 | { 18 | return nullptr; 19 | } 20 | return m_displays[index]; 21 | } 22 | 23 | DisplayManager::DisplayManager() 24 | { 25 | } 26 | 27 | DisplayManager::~DisplayManager() 28 | { 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Rendering/DisplayManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace DerydocaEngine::Rendering { 5 | class Display; 6 | } 7 | 8 | namespace DerydocaEngine::Rendering 9 | { 10 | 11 | class DisplayManager 12 | { 13 | public: 14 | static DisplayManager& getInstance() 15 | { 16 | static DisplayManager instance; 17 | return instance; 18 | } 19 | 20 | void addDisplay(Display* const& display); 21 | 22 | Display* getDisplay(size_t const& index) const; 23 | 24 | void operator=(DisplayManager const&) = delete; 25 | private: 26 | DisplayManager(); 27 | ~DisplayManager(); 28 | 29 | DisplayManager(DisplayManager const&); 30 | 31 | std::vector m_displays; 32 | }; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Rendering/Gui/DearImgui.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Rendering\Display.h" 3 | 4 | namespace DerydocaEngine::Rendering::Gui 5 | { 6 | 7 | class DearImgui { 8 | public: 9 | static void ApplyDefaultStyle(); 10 | static ImGuiIO init(std::shared_ptr display); 11 | static void newFrame(std::shared_ptr display); 12 | static void render(std::shared_ptr display); 13 | static void shutdown(); 14 | static bool processEvent(SDL_Event& event); 15 | }; 16 | 17 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Rendering/MatrixStack.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | namespace DerydocaEngine::Rendering 7 | { 8 | 9 | class MatrixStack 10 | { 11 | public: 12 | MatrixStack() { 13 | m_matrixStack.push(glm::mat4()); 14 | }; 15 | ~MatrixStack() { } 16 | 17 | void push(glm::mat4 const& matrix) { 18 | glm::mat4 newMatrix = getMatrix() * matrix; 19 | m_matrixStack.push(newMatrix); 20 | } 21 | 22 | void pop() { 23 | m_matrixStack.pop(); 24 | } 25 | 26 | glm::mat4 getMatrix() const { 27 | return m_matrixStack.top(); 28 | } 29 | private: 30 | std::stack m_matrixStack; 31 | }; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Rendering/Projection.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Rendering\Projection.h" 3 | 4 | #include 5 | 6 | namespace DerydocaEngine::Rendering 7 | { 8 | void Projection::recalculateProjectionMatrix() 9 | { 10 | switch (m_ProjectionMode) 11 | { 12 | case ProjectionMode::Orthographic: 13 | m_ProjectionMatrix = glm::mat4(); //glm::ortho(-m_orthoSize, m_orthoSize, -m_orthoSize, m_orthoSize, m_zNear, m_zFar); 14 | break; 15 | case ProjectionMode::Perspective: 16 | m_ProjectionMatrix = glm::perspective(m_FOV * (glm::pi() / 180), m_Aspect, m_ZNear, m_ZFar); 17 | break; 18 | default: 19 | m_ProjectionMatrix = glm::mat4(); 20 | break; 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Rendering/RenderingMode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Rendering 4 | { 5 | 6 | enum RenderingMode { 7 | Forward = 0, 8 | Deferred = 1 9 | }; 10 | 11 | } -------------------------------------------------------------------------------- /DerydocaEngine/src/Rendering/Skybox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Rendering { 4 | class Mesh; 5 | } 6 | 7 | namespace DerydocaEngine::Rendering 8 | { 9 | 10 | class Skybox 11 | { 12 | public: 13 | Skybox(); 14 | Skybox(float const& size); 15 | ~Skybox(); 16 | 17 | Mesh* getMesh() const { return m_mesh; }; 18 | private: 19 | void buildMesh(float const& size); 20 | 21 | Mesh* m_mesh; 22 | }; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/FontResource.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Resource.h" 3 | 4 | namespace DerydocaEngine::Resources 5 | { 6 | 7 | struct FontResource : public Resource 8 | { 9 | public: 10 | REGISTER_TYPE_ID(FontResource); 11 | 12 | FontResource() : 13 | Resource(ResourceType::FontResourceType) 14 | {} 15 | 16 | template 17 | void save(Archive& archive) const 18 | { 19 | archive( 20 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 21 | ); 22 | } 23 | 24 | template 25 | void load(Archive& archive) 26 | { 27 | archive( 28 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 29 | ); 30 | } 31 | 32 | }; 33 | 34 | } 35 | 36 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Resources::FontResource, 0); 37 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/LevelResource.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Resource.h" 3 | 4 | namespace DerydocaEngine::Resources 5 | { 6 | 7 | struct LevelResource : public Resource 8 | { 9 | public: 10 | REGISTER_TYPE_ID(LevelResource); 11 | 12 | LevelResource() : 13 | Resource(ResourceType::LevelResourceType) 14 | {} 15 | 16 | template 17 | void save(Archive& archive) const 18 | { 19 | archive( 20 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 21 | ); 22 | } 23 | 24 | template 25 | void load(Archive& archive) 26 | { 27 | archive( 28 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 29 | ); 30 | } 31 | 32 | }; 33 | 34 | } 35 | 36 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Resources::LevelResource, 0); 37 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/MaterialResource.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Resource.h" 3 | 4 | namespace DerydocaEngine::Resources 5 | { 6 | 7 | struct MaterialResource : public Resource 8 | { 9 | public: 10 | REGISTER_TYPE_ID(MaterialResource); 11 | 12 | MaterialResource() : 13 | Resource(ResourceType::MaterialResourceType) 14 | {} 15 | 16 | template 17 | void save(Archive& archive) const 18 | { 19 | archive( 20 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 21 | ); 22 | } 23 | 24 | template 25 | void load(Archive& archive) 26 | { 27 | archive( 28 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 29 | ); 30 | } 31 | 32 | }; 33 | 34 | } 35 | 36 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Resources::MaterialResource, 0); 37 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/RasterFontResource.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Resource.h" 3 | 4 | namespace DerydocaEngine::Resources 5 | { 6 | 7 | struct RasterFontResource : public Resource 8 | { 9 | public: 10 | REGISTER_TYPE_ID(RasterFontResource); 11 | 12 | RasterFontResource() : 13 | Resource(ResourceType::RasterFontResourceType) 14 | {} 15 | 16 | template 17 | void save(Archive& archive) const 18 | { 19 | archive( 20 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 21 | ); 22 | } 23 | 24 | template 25 | void load(Archive& archive) 26 | { 27 | archive( 28 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 29 | ); 30 | } 31 | 32 | }; 33 | 34 | } 35 | 36 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Resources::RasterFontResource, 0); 37 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/ResourceType.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DerydocaEngine::Resources 4 | { 5 | 6 | enum ResourceType 7 | { 8 | UnknownResourceType, 9 | MaterialResourceType, 10 | MeshResourceType, 11 | TextureResourceType, 12 | CubemapResourceType, 13 | LevelResourceType, 14 | ShaderResourceType, 15 | FontResourceType, 16 | RasterFontResourceType, 17 | SpriteSheetType, 18 | }; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/CubemapResourceSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Serializers\ResourceSerializer.h" 3 | 4 | namespace DerydocaEngine::Resources::Serializers 5 | { 6 | 7 | class CubemapResourceSerializer : public ResourceSerializer 8 | { 9 | public: 10 | virtual std::shared_ptr deserializePointer(std::shared_ptr resource); 11 | virtual ResourceType getResourceType() { return ResourceType::CubemapResourceType; } 12 | }; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/MaterialResourceSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Serializers\ResourceSerializer.h" 3 | 4 | namespace DerydocaEngine::Resources::Serializers 5 | { 6 | 7 | class MaterialResourceSerializer : public ResourceSerializer 8 | { 9 | public: 10 | virtual std::shared_ptr deserializePointer(std::shared_ptr resource); 11 | virtual ResourceType getResourceType() { return ResourceType::MaterialResourceType; } 12 | }; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/RasterFontResourceSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "RasterFontResourceSerializer.h" 3 | #include "UI\FontFace.h" 4 | 5 | std::shared_ptr DerydocaEngine::Resources::Serializers::RasterFontResourceSerializer::deserializePointer(std::shared_ptr resource) 6 | { 7 | std::shared_ptr ff = std::make_shared(); 8 | ff->loadFromSerializedFile(resource->getSourceFilePath()); 9 | return ff; 10 | } 11 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/RasterFontResourceSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Serializers\ResourceSerializer.h" 3 | 4 | namespace DerydocaEngine::Resources::Serializers 5 | { 6 | 7 | class RasterFontResourceSerializer : public ResourceSerializer 8 | { 9 | public: 10 | virtual std::shared_ptr deserializePointer(std::shared_ptr resource); 11 | virtual ResourceType getResourceType() { return ResourceType::RasterFontResourceType; } 12 | }; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/ResourceSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include "Resources\ResourceType.h" 5 | #include "ObjectLibrary.h" 6 | #include "Resources\Resource.h" 7 | 8 | namespace DerydocaEngine::Resources::Serializers 9 | { 10 | 11 | class ResourceSerializer 12 | { 13 | public: 14 | virtual ~ResourceSerializer() {} 15 | virtual std::shared_ptr deserializePointer(std::shared_ptr resource) { return nullptr; } 16 | virtual ResourceType getResourceType() = 0; 17 | 18 | }; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/ShaderResourceSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Resources\Serializers\ShaderResourceSerializer.h" 3 | 4 | #include "Rendering\Shader.h" 5 | #include "Rendering\ShaderLibrary.h" 6 | #include "Resources\ShaderResource.h" 7 | 8 | namespace DerydocaEngine::Resources::Serializers 9 | { 10 | 11 | std::shared_ptr ShaderResourceSerializer::deserializePointer(std::shared_ptr resource) 12 | { 13 | auto shaderResource = std::static_pointer_cast(resource); 14 | auto shader = std::make_shared(shaderResource->getRawShaderName()); 15 | return shader; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/ShaderResourceSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Serializers\ResourceSerializer.h" 3 | 4 | namespace DerydocaEngine::Resources::Serializers 5 | { 6 | 7 | class ShaderResourceSerializer : public ResourceSerializer 8 | { 9 | public: 10 | virtual std::shared_ptr deserializePointer(std::shared_ptr resource); 11 | virtual ResourceType getResourceType() { return ResourceType::ShaderResourceType; } 12 | }; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/SpriteSheetResourceSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Resources\Serializers\SpriteSheetResourceSerializer.h" 3 | #include "UI\Spritesheet.h" 4 | 5 | namespace DerydocaEngine::Resources::Serializers 6 | { 7 | 8 | std::shared_ptr SpriteSheetResourceSerializer::deserializePointer(std::shared_ptr resource) 9 | { 10 | std::shared_ptr ss = std::make_shared(); 11 | ss->LoadFromSerializedFile(resource->getSourceFilePath()); 12 | return ss; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/SpriteSheetResourceSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Serializers\ResourceSerializer.h" 3 | 4 | namespace DerydocaEngine::Resources::Serializers 5 | { 6 | 7 | class SpriteSheetResourceSerializer : public ResourceSerializer 8 | { 9 | public: 10 | virtual std::shared_ptr deserializePointer(std::shared_ptr resource); 11 | virtual ResourceType getResourceType() { return ResourceType::SpriteSheetType; } 12 | }; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/TextureResourceSerializer.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Resources\Serializers\TextureResourceSerializer.h" 3 | #include "Rendering\Texture.h" 4 | #include "Resources\Resource.h" 5 | 6 | namespace DerydocaEngine::Resources::Serializers 7 | { 8 | 9 | std::shared_ptr TextureResourceSerializer::deserializePointer(std::shared_ptr resource) 10 | { 11 | std::string sourceFilePath = resource->getSourceFilePath(); 12 | 13 | auto texture = std::make_shared(sourceFilePath); 14 | 15 | return texture; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/Serializers/TextureResourceSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Serializers\MaterialResourceSerializer.h" 3 | 4 | namespace DerydocaEngine::Resources::Serializers 5 | { 6 | 7 | class TextureResourceSerializer : public MaterialResourceSerializer 8 | { 9 | public: 10 | virtual std::shared_ptr deserializePointer(std::shared_ptr resource); 11 | virtual ResourceType getResourceType() { return ResourceType::TextureResourceType; } 12 | }; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/SpriteSheetResource.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Resource.h" 3 | 4 | namespace DerydocaEngine::Resources 5 | { 6 | 7 | struct SpriteSheetResource : public Resource 8 | { 9 | public: 10 | REGISTER_TYPE_ID(SpriteSheetResource); 11 | 12 | SpriteSheetResource() 13 | { 14 | setType(DerydocaEngine::Resources::SpriteSheetType); 15 | } 16 | 17 | template 18 | void save(Archive& archive) const 19 | { 20 | archive( 21 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 22 | ); 23 | } 24 | 25 | template 26 | void load(Archive& archive) 27 | { 28 | archive( 29 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 30 | ); 31 | } 32 | 33 | }; 34 | 35 | } 36 | 37 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Resources::SpriteSheetResource, 0); 38 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Resources/TextureResource.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Resources\Resource.h" 3 | 4 | namespace DerydocaEngine::Resources 5 | { 6 | 7 | struct TextureResource : public Resource 8 | { 9 | public: 10 | REGISTER_TYPE_ID(TextureResource); 11 | 12 | TextureResource() 13 | { 14 | setType(DerydocaEngine::Resources::TextureResourceType); 15 | } 16 | 17 | template 18 | void save(Archive& archive) const 19 | { 20 | archive( 21 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 22 | ); 23 | } 24 | 25 | template 26 | void load(Archive& archive) 27 | { 28 | archive( 29 | SERIALIZE_BASE(DerydocaEngine::Resources::Resource) 30 | ); 31 | } 32 | 33 | 34 | }; 35 | 36 | } 37 | 38 | REGISTER_SERIALIZED_TYPE(DerydocaEngine::Resources::TextureResource, 0); 39 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Scenes/HardCodedScene.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "HardCodedScene.h" 3 | #include "GameObject.h" 4 | 5 | DerydocaEngine::Scenes::HardCodedScene::HardCodedScene() 6 | { 7 | } 8 | 9 | DerydocaEngine::Scenes::HardCodedScene::~HardCodedScene() 10 | { 11 | } 12 | 13 | void DerydocaEngine::Scenes::HardCodedScene::setUp() 14 | { 15 | m_Root = std::make_shared("__root__"); 16 | m_Root->init(); 17 | m_Root->postInit(); 18 | } 19 | 20 | void DerydocaEngine::Scenes::HardCodedScene::tearDown() 21 | { 22 | m_Root->preDestroy(); 23 | } 24 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Scenes/HardCodedScene.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Scenes\Scene.h" 3 | 4 | namespace DerydocaEngine::Scenes 5 | { 6 | 7 | class HardCodedScene : public Scene 8 | { 9 | public: 10 | HardCodedScene(); 11 | ~HardCodedScene(); 12 | 13 | virtual void setUp() override; 14 | virtual void tearDown() override; 15 | 16 | }; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Scenes/Scene.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace DerydocaEngine { 5 | class GameObject; 6 | } 7 | 8 | namespace DerydocaEngine::Scenes 9 | { 10 | 11 | class Scene { 12 | public: 13 | Scene() {} 14 | virtual void setUp() = 0; 15 | virtual void tearDown() = 0; 16 | virtual std::shared_ptr getRoot() const { return m_Root; } 17 | 18 | SERIALIZE_FUNC( 19 | SERIALIZE(m_Root) 20 | ); 21 | protected: 22 | std::shared_ptr m_Root; 23 | }; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Scenes/SerializedScene.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "Scenes\SerializedScene.h" 3 | #include 4 | #include 5 | #include "ObjectLibrary.h" 6 | #include "Components\GameComponentFactory.h" 7 | #include 8 | #include "Components\GameComponent.h" 9 | #include 10 | #include 11 | #include 12 | #include "Files\FileUtils.h" 13 | 14 | namespace DerydocaEngine::Scenes 15 | { 16 | 17 | SerializedScene::SerializedScene() 18 | { 19 | } 20 | 21 | SerializedScene::~SerializedScene() 22 | { 23 | } 24 | 25 | void SerializedScene::setUp() 26 | { 27 | if (!m_Root) 28 | { 29 | m_Root = std::make_shared("__SCENE_ROOT__"); 30 | } 31 | } 32 | 33 | void SerializedScene::tearDown() 34 | { 35 | m_Root->preDestroy(); 36 | m_Root = nullptr; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /DerydocaEngine/src/Scenes/SerializedScene.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Scenes\Scene.h" 3 | 4 | namespace DerydocaEngine::Scenes 5 | { 6 | 7 | class SerializedScene : public Scene 8 | { 9 | public: 10 | SerializedScene(); 11 | ~SerializedScene(); 12 | 13 | virtual void setUp(); 14 | virtual void tearDown(); 15 | 16 | SERIALIZE_FUNC_BASE(DerydocaEngine::Scenes::Scene); 17 | }; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /DerydocaEngine/src/SystemWindowingLayer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "EnginePch.h" 3 | 4 | namespace DerydocaEngine 5 | { 6 | 7 | class SystemWindowingLayer 8 | { 9 | public: 10 | static void init(); 11 | static SystemWindow* createWindow(std::string title, int width, int height); 12 | static GraphicsAPIContext createGraphicsAPIContext(SystemWindow* window); 13 | static bool setVSync(bool enabled); 14 | static void swapBuffers(SystemWindow* window, GraphicsAPIContext* graphicsApiContext); 15 | static bool setMultisampling(int buffers, int samples); 16 | static void setDepthTesting(bool enabled); 17 | }; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /DerydocaEngine/src/TypeNameLookup.cpp: -------------------------------------------------------------------------------- 1 | #include "EnginePch.h" 2 | #include "TypeNameLookup.h" 3 | 4 | namespace DerydocaEngine 5 | { 6 | 7 | TypeNameLookup::TypeNameLookup() : 8 | m_nameLookup() 9 | { 10 | } 11 | 12 | TypeNameLookup::~TypeNameLookup() 13 | { 14 | } 15 | 16 | std::string TypeNameLookup::get(std::shared_ptr object) 17 | { 18 | unsigned long typeId = object->getTypeId(); 19 | auto it = m_nameLookup.find(typeId); 20 | return it == m_nameLookup.end() ? "" : (*it).second; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /DerydocaEngine/src/TypeNameLookup.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Object.h" 3 | 4 | namespace DerydocaEngine 5 | { 6 | 7 | class TypeNameLookup 8 | { 9 | public: 10 | static TypeNameLookup& get() { 11 | static TypeNameLookup m_instance; 12 | return m_instance; 13 | } 14 | 15 | template 16 | bool registerType(std::string typeName) 17 | { 18 | unsigned long typeId = getTypeId(); 19 | m_nameLookup[typeId] = typeName; 20 | return true; 21 | } 22 | 23 | std::string get(std::shared_ptr object); 24 | 25 | private: 26 | TypeNameLookup(); 27 | ~TypeNameLookup(); 28 | TypeNameLookup(const TypeNameLookup&); 29 | 30 | std::unordered_map m_nameLookup; 31 | }; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /DerydocaEngine/src/UI/SpriteReference.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Rect.h" 3 | 4 | namespace DerydocaEngine::UI 5 | { 6 | 7 | enum class SpriteType 8 | { 9 | Sprite = 0, 10 | NineSlice = 1 11 | }; 12 | 13 | struct SpriteReference 14 | { 15 | public: 16 | SpriteReference() 17 | { 18 | } 19 | 20 | SpriteReference(unsigned long const& identifier) 21 | { 22 | id = identifier; 23 | } 24 | 25 | ~SpriteReference() 26 | { 27 | } 28 | 29 | SERIALIZE_FUNC( 30 | SERIALIZE(id), 31 | SERIALIZE(type), 32 | SERIALIZE(slice), 33 | SERIALIZE(size), 34 | SERIALIZE(texPosition), 35 | SERIALIZE(textureId) 36 | ) 37 | 38 | unsigned int id; 39 | SpriteType type = SpriteType::Sprite; 40 | float4 slice = { 0.0f, 1.0f, 1.0f, 0.0f }; // Top, Right, Bottom, Left 41 | int2 size; 42 | Rect texPosition; 43 | std::string textureId; 44 | }; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-tactile -------------------------------------------------------------------------------- /engineResources/configs/engineSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "m_engineSettings": { 3 | "ptr_wrapper": { 4 | "id": 2147483649, 5 | "data": { 6 | "m_engineResourceDirectory": ".\\engineResources\\", 7 | "m_editorComponentsSceneIdentifier": "620d32d7-eb7e-4fd0-8ad6-4e339e4bbdad", 8 | "m_editorGuiSceneIdentifier": "45e19c48-5012-4afd-85d1-0c690a1ce2a9", 9 | "m_editorSkyboxMaterialIdentifier": "c6b94876-5f49-4faa-b5ed-5665bffcd987" 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /engineResources/fonts/FiraCode-Medium.dfont.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/fonts/FiraCode-Medium.dfont.bmp -------------------------------------------------------------------------------- /engineResources/fonts/FiraCode-Medium.dfont.bmp.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "f8068fa8-cdaf-484e-a5c2-0116e2ec318b" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/fonts/FiraCode-Medium.dfont.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::RasterFontResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "6aeda909-35c6-49a0-a161-ab9fa33087b0" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/fonts/FiraCode-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/fonts/FiraCode-Medium.ttf -------------------------------------------------------------------------------- /engineResources/fonts/FiraCode-Medium.ttf.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::FontResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "cf77e605-8a50-4a77-931a-26b389663482" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/fonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/fonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /engineResources/fonts/OpenSans-Regular.ttf.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::FontResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "23100bba-2b7d-4f3d-9fb6-ee4ff0ca59c5" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/fonts/opensans_16.dfont.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/fonts/opensans_16.dfont.bmp -------------------------------------------------------------------------------- /engineResources/fonts/opensans_16.dfont.bmp.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "42b3fc16-04b2-4635-82fe-283347f04d1d" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/fonts/opensans_16.dfont.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::RasterFontResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "bae470a9-6fc3-4ac7-8a87-08bc59b3898b" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/levels/editorComponents.derylevel.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::LevelResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "620d32d7-eb7e-4fd0-8ad6-4e339e4bbdad" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/levels/editorWindows.derylevel.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::LevelResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "45e19c48-5012-4afd-85d1-0c690a1ce2a9" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/materials/basic_cubemap.dcubemap: -------------------------------------------------------------------------------- 1 | { 2 | "cubemapData" : { 3 | "texXPos": "fa331d47-3ba1-4453-9177-ea8194276f94", 4 | "texXNeg": "a8c84a1a-f589-40a5-a42c-2afc79878ea3", 5 | "texYPos": "adb6a6fd-b434-4e4c-a10c-cb0cb8cf31a8", 6 | "texYNeg": "b78f820c-9073-4e1e-a63a-de188fc97daa", 7 | "texZPos": "49b82284-ca19-43f2-bf84-831ad4e275d0", 8 | "texZNeg": "60760012-a010-49ea-9b3f-91b03f6b2669" 9 | } 10 | } -------------------------------------------------------------------------------- /engineResources/materials/basic_cubemap.dcubemap.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::CubemapResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "1a1745a0-41ec-413d-8fb6-9da520e7961c" 12 | } 13 | }, 14 | "m_slot": 0 15 | } 16 | } 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /engineResources/materials/basic_skybox.derymaterial: -------------------------------------------------------------------------------- 1 | { 2 | "ShaderId": "bef58587-98d5-4351-9a78-07f6d1f93a87", 3 | "Textures": [ 4 | { 5 | "Name": "cubemap", 6 | "Value": "1a1745a0-41ec-413d-8fb6-9da520e7961c" 7 | } 8 | ], 9 | "Bools": [], 10 | "Ints": [], 11 | "Floats": [], 12 | "FloatArrays": [], 13 | "Float3s": [], 14 | "Float4s": [], 15 | "Float3x3s": [], 16 | "Float4x4s": [], 17 | "Float4x4Arrays": [], 18 | "SubroutineValues": [] 19 | } -------------------------------------------------------------------------------- /engineResources/materials/basic_skybox.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "067d446a-10b5-43ca-9fd4-9fdb7ad4c0d1" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/materials/errorMaterial.derymaterial: -------------------------------------------------------------------------------- 1 | { 2 | "ShaderId": "3a8405f2-e16f-4aa7-bef0-5644d7d19cdd", 3 | "Textures": [], 4 | "Bools": [], 5 | "Ints": [], 6 | "Floats": [], 7 | "FloatArrays": [], 8 | "Float3s": [], 9 | "Float4s": [], 10 | "Float3x3s": [], 11 | "Float4x4s": [], 12 | "Float4x4Arrays": [], 13 | "SubroutineValues": [] 14 | } -------------------------------------------------------------------------------- /engineResources/materials/errorMaterial.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "1123d051-a92e-4781-a5cc-b3c8703e6ecc" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/materials/fontBasic.derymaterial: -------------------------------------------------------------------------------- 1 | { 2 | "ShaderId": "17c209d8-34ff-45ba-a1aa-d6dfb7bc59b7", 3 | "Textures": [], 4 | "Bools": [], 5 | "Ints": [], 6 | "Floats": [], 7 | "FloatArrays": [], 8 | "Float3s": [], 9 | "Float4s": [], 10 | "Float3x3s": [], 11 | "Float4x4s": [], 12 | "Float4x4Arrays": [], 13 | "SubroutineValues": [] 14 | } -------------------------------------------------------------------------------- /engineResources/materials/fontBasic.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "75a01949-631c-4027-a413-9148261668d9" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/materials/grid.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "f31bfa36-a1fe-44fd-8cee-0ee83f3ce69a" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/materials/solidMaterial.derymaterial: -------------------------------------------------------------------------------- 1 | { 2 | "ShaderId": "c37769f6-aad2-48f7-8cc5-6fb222a3dc59", 3 | "Textures": [], 4 | "Bools": [], 5 | "Ints": [], 6 | "Floats": [], 7 | "FloatArrays": [], 8 | "Float3s": [], 9 | "Float4s": [], 10 | "Float3x3s": [], 11 | "Float4x4s": [], 12 | "Float4x4Arrays": [], 13 | "SubroutineValues": [] 14 | } -------------------------------------------------------------------------------- /engineResources/materials/solidMaterial.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "9a932980-a824-4ec9-bd89-e67cc45e992a" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/models/checkers.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "a2238007-d6c8-45a2-af39-949bc197f6a4" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/models/cube.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "deb8fa30-119b-4483-b3fe-58978a4a73ac" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/models/directionalLightMarker.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "c00c1f49-39a7-4e68-b412-b18a3fa42362" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/models/plane.obj: -------------------------------------------------------------------------------- 1 | # Blender v2.79 (sub 0) OBJ File: '' 2 | # www.blender.org 3 | o Plane 4 | v -1.000000 0.000000 1.000000 5 | v 1.000000 0.000000 1.000000 6 | v -1.000000 0.000000 -1.000000 7 | v 1.000000 0.000000 -1.000000 8 | vt 0.999900 0.000100 9 | vt 0.000100 0.999900 10 | vt 0.000100 0.000100 11 | vt 0.999900 0.999900 12 | vn 0.0000 1.0000 0.0000 13 | s off 14 | f 2/1/1 3/2/1 1/3/1 15 | f 2/1/1 4/4/1 3/2/1 16 | -------------------------------------------------------------------------------- /engineResources/models/plane.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "cdadf7f6-536c-4765-9d6d-08a15c8e54c5" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/models/planeDense.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "e66593df-56c5-41e5-9016-358e0bada566" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/models/pyramid.obj: -------------------------------------------------------------------------------- 1 | # Blender v2.79 (sub 0) OBJ File: '' 2 | # www.blender.org 3 | mtllib pyramid.mtl 4 | o Plane 5 | v 0.000000 1.000000 0.000000 6 | v 0.000000 0.000000 -1.000000 7 | v -0.866025 0.000000 0.500000 8 | v 0.866025 0.000000 0.500000 9 | vn 0.7746 0.4472 -0.4472 10 | vn 0.0000 -1.0000 0.0000 11 | vn 0.0000 0.4472 0.8944 12 | vn -0.7746 0.4472 -0.4472 13 | usemtl None 14 | s off 15 | f 4//1 2//1 1//1 16 | f 3//2 2//2 4//2 17 | f 3//3 4//3 1//3 18 | f 2//4 3//4 1//4 19 | -------------------------------------------------------------------------------- /engineResources/models/pyramid.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "8fc1c048-23db-44f5-a378-682c4804b43f" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/models/quad.obj: -------------------------------------------------------------------------------- 1 | # Quad 2 | o Quad 3 | v -1.000000 1.000000 0.000000 4 | v 1.000000 1.000000 0.000000 5 | v -1.000000 -1.000000 0.000000 6 | v 1.000000 -1.000000 0.000000 7 | vt 0.000000 1.000000 8 | vt 1.000000 1.000000 9 | vt 0.000000 0.000000 10 | vt 1.000000 0.000000 11 | vn 0.0000 0.0000 1.0000 12 | s off 13 | f 3/3/1 2/2/1 1/1/1 14 | f 2/2/1 3/3/1 4/4/1 15 | -------------------------------------------------------------------------------- /engineResources/models/quad.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "136a5d0f-51d7-4f3c-857c-0497de142a71" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/models/sphere.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "c8692242-532d-4905-a1eb-0ed40dab3114" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/models/spotlightMarker.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "c0240c4a-48cb-4ade-b5aa-46a6a89584d2" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /engineResources/shaders/basicShader.fs: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | varying vec2 texCoord0; 4 | varying vec3 normal0; 5 | 6 | uniform sampler2D diffuse; 7 | 8 | void main() { 9 | gl_FragColor = texture2D(diffuse, texCoord0) 10 | * clamp(dot(-vec3(0,0,1), normal0), 0.0, 1.0); 11 | } -------------------------------------------------------------------------------- /engineResources/shaders/basicShader.vs: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | attribute vec3 VertexPosition; 4 | attribute vec2 texCoord; 5 | attribute vec3 VertexNormal; 6 | 7 | varying vec2 texCoord0; 8 | varying vec3 normal0; 9 | 10 | uniform mat4 MVP; 11 | 12 | void main() { 13 | gl_Position = MVP * vec4(VertexPosition, 1.0); 14 | texCoord0 = texCoord; 15 | normal0 = (MVP * vec4(VertexNormal, 0.0)).xyz; 16 | } -------------------------------------------------------------------------------- /engineResources/shaders/basicShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "8ed45e4c-754f-489c-b838-9c2cdc25a633" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/cubemapShader.fs: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | varying vec3 texCoord0; 4 | 5 | //out vec4 diffuse; 6 | 7 | uniform samplerCube cubeMap; 8 | 9 | void main(void) 10 | { 11 | gl_FragColor = texture(cubeMap, texCoord0); 12 | //gl_FragColor = (vec4(texCoord0, 1.0) / 2) + (texture(cubeMap, texCoord0) / 2); 13 | } -------------------------------------------------------------------------------- /engineResources/shaders/cubemapShader.vs: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec4 VertexPosition; 4 | 5 | varying vec3 texCoord0; 6 | 7 | uniform mat4 MVP; 8 | 9 | void main(void) 10 | { 11 | texCoord0 = normalize(VertexPosition.xyz); 12 | gl_Position = MVP * VertexPosition; 13 | } -------------------------------------------------------------------------------- /engineResources/shaders/cubemapShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "bef58587-98d5-4351-9a78-07f6d1f93a87" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/deferredRenderCompositorShader.vs: -------------------------------------------------------------------------------- 1 | #version 430 2 | 3 | in vec3 VertexPosition; 4 | in vec3 VertexNormal; 5 | in vec2 VertexTexCoord; 6 | 7 | out vec3 Position; 8 | out vec3 Normal; 9 | out vec2 TexCoord; 10 | 11 | uniform mat4 ModelViewMatrix; 12 | uniform mat3 NormalMatrix; 13 | uniform mat4 ProjectionMatrix; 14 | uniform mat4 MVP; 15 | 16 | void main() 17 | { 18 | Normal = normalize( NormalMatrix * VertexNormal); 19 | Position = vec3( ModelViewMatrix * vec4(VertexPosition,1.0) ); 20 | TexCoord = VertexTexCoord; 21 | gl_Position = MVP * vec4(VertexPosition,1.0); 22 | } -------------------------------------------------------------------------------- /engineResources/shaders/deferredRenderCompositorShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "0d8693e6-e8c9-4e71-80a3-e34ad9c42200" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/diffuseFrag.vs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec2 texCoord; 4 | in vec3 VertexPosition; 5 | in vec3 VertexNormal; 6 | 7 | out vec3 vertPosition; 8 | out vec3 vertNormal; 9 | out vec2 texCoord0; 10 | 11 | uniform mat4 MVP; 12 | 13 | void main() 14 | { 15 | vertPosition = VertexPosition; 16 | vertNormal = VertexNormal; 17 | texCoord0 = texCoord; 18 | gl_Position = MVP * vec4(VertexPosition,1.0); 19 | } 20 | -------------------------------------------------------------------------------- /engineResources/shaders/diffuseFrag.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "6ea94009-4b34-4011-aaf4-bac38b0ac397" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/diffuseVert.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | in vec3 LightIntensity; 3 | out vec4 FragColor; 4 | 5 | void main() 6 | { 7 | FragColor = vec4(LightIntensity, 1.0); 8 | } 9 | -------------------------------------------------------------------------------- /engineResources/shaders/diffuseVert.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "e73b5549-e7ae-47c1-9ffb-6355e1e171cc" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/discardShader.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec4 FrontColor; 4 | in vec4 BackColor; 5 | in vec2 TexCoord; 6 | 7 | out vec4 FragColor; 8 | 9 | void main() 10 | { 11 | const float scale = 30.0; 12 | bvec2 toDiscard = greaterThan(fract(TexCoord * scale), vec2(0.2, 0.2)); 13 | if(all(toDiscard)) 14 | { 15 | discard; 16 | } 17 | if (gl_FrontFacing) 18 | { 19 | FragColor = FrontColor; 20 | } 21 | else 22 | { 23 | FragColor = BackColor; 24 | } 25 | } -------------------------------------------------------------------------------- /engineResources/shaders/discardShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "05b104d1-47bc-4984-b772-b0a065d246dc" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/errorShader.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | out vec4 FragColor; 4 | 5 | void main() 6 | { 7 | FragColor = vec4(1.0, 0.0, 1.0, 1.0); 8 | } -------------------------------------------------------------------------------- /engineResources/shaders/errorShader.vs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec3 VertexPosition; 4 | 5 | uniform mat4 MVP; 6 | 7 | void main() 8 | { 9 | gl_Position = MVP * vec4(VertexPosition, 1.0); 10 | } 11 | -------------------------------------------------------------------------------- /engineResources/shaders/errorShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "3a8405f2-e16f-4aa7-bef0-5644d7d19cdd" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/fontShader.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec3 Position; 4 | in vec2 TexCoord; 5 | in vec4 Color; 6 | 7 | uniform sampler2D CharacterSheet; 8 | 9 | out vec4 FragColor; 10 | 11 | void main() 12 | { 13 | vec4 texColor = texture(CharacterSheet, TexCoord); 14 | 15 | if(texColor.r < 0.5) 16 | { 17 | discard; 18 | } 19 | 20 | FragColor = Color; 21 | } -------------------------------------------------------------------------------- /engineResources/shaders/fontShader.vs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec3 VertexPosition; 4 | in vec2 VertexTexCoord; 5 | in vec4 VertexColor; 6 | 7 | out vec3 Position; 8 | out vec2 TexCoord; 9 | out vec4 Color; 10 | 11 | uniform mat4 ModelViewMatrix; 12 | uniform mat3 NormalMatrix; 13 | uniform mat4 ProjectionMatrix; 14 | uniform mat4 MVP; 15 | 16 | void main() 17 | { 18 | TexCoord = VertexTexCoord; 19 | Color = VertexColor; 20 | Position = vec3(ModelViewMatrix * vec4(VertexPosition, 1.0)); 21 | gl_Position = MVP * vec4(VertexPosition, 1.0); 22 | } -------------------------------------------------------------------------------- /engineResources/shaders/fontShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "17c209d8-34ff-45ba-a1aa-d6dfb7bc59b7" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/gridShader.vs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec3 VertexPosition; 4 | in vec3 VertexNormal; 5 | in vec2 VertexTexCoord; 6 | 7 | out vec3 WorldPos; 8 | out vec3 Normal; 9 | out vec2 TexCoord; 10 | 11 | uniform mat4 ModelMatrix; 12 | uniform mat4 ViewMatrix; 13 | uniform mat3 NormalMatrix; 14 | uniform mat4 MVP; 15 | 16 | uniform float minimumScale = 50.0; 17 | 18 | void main() 19 | { 20 | TexCoord = VertexTexCoord; 21 | Normal = NormalMatrix * VertexNormal; 22 | mat4 inv = inverse(ViewMatrix); 23 | vec3 camOffset = vec3(inv[3][0], 0.0, inv[3][2]); 24 | float currentScale = abs(inv[3][1]) + minimumScale; 25 | vec3 scaledVertexPosition = VertexPosition * vec3(currentScale); 26 | gl_Position = MVP * vec4(scaledVertexPosition + camOffset, 1.0); 27 | WorldPos = (ModelMatrix * vec4(scaledVertexPosition + camOffset, 1.0)).xyz; 28 | } 29 | -------------------------------------------------------------------------------- /engineResources/shaders/gridShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "40ceb881-f04c-44e6-91c1-cc2426ece94c" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/phongVert.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | in vec4 LightIntensity; 3 | out vec4 FragColor; 4 | 5 | void main() 6 | { 7 | FragColor = vec4(vec3(LightIntensity), 1.0); 8 | } -------------------------------------------------------------------------------- /engineResources/shaders/phongVert.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "d7cfc851-b1fd-4ebb-96fc-bd6beb99ef62" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/phongVertFlat.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | flat in vec4 LightIntensity; 3 | out vec4 FragColor; 4 | 5 | void main() 6 | { 7 | FragColor = vec4(vec3(LightIntensity), 1.0); 8 | } -------------------------------------------------------------------------------- /engineResources/shaders/phongVertFlat.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "32b4f2a0-b2c8-4e23-8278-bf860168ba07" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/phongVertTwoSided.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec4 FrontColor; 4 | in vec4 BackColor; 5 | 6 | out vec4 FragColor; 7 | 8 | void main() 9 | { 10 | if(gl_FrontFacing) 11 | { 12 | FragColor = FrontColor; 13 | } 14 | else 15 | { 16 | FragColor = BackColor; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /engineResources/shaders/phongVertTwoSided.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "c9a2ea76-5da9-47a5-92dd-76dbbcc60ba8" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/solidShader.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | out vec4 FragColor; 4 | 5 | void main() 6 | { 7 | FragColor = vec4(1.0); 8 | } -------------------------------------------------------------------------------- /engineResources/shaders/solidShader.vs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec3 VertexPosition; 4 | 5 | uniform mat4 MVP; 6 | 7 | void main() 8 | { 9 | gl_Position = MVP * vec4(VertexPosition, 1.0); 10 | } 11 | -------------------------------------------------------------------------------- /engineResources/shaders/solidShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "c37769f6-aad2-48f7-8cc5-6fb222a3dc59" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/shaders/spriteShader.fs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec3 Position; 4 | in vec2 TexCoord; 5 | in vec4 Color; 6 | 7 | uniform sampler2D SpriteSheet; 8 | 9 | out vec4 FragColor; 10 | 11 | void main() 12 | { 13 | vec4 texColor = texture(SpriteSheet, TexCoord); 14 | 15 | if(texColor.a < 0.5) 16 | { 17 | discard; 18 | } 19 | 20 | FragColor = texColor * Color; 21 | } -------------------------------------------------------------------------------- /engineResources/shaders/spriteShader.vs: -------------------------------------------------------------------------------- 1 | #version 400 2 | 3 | in vec3 VertexPosition; 4 | in vec2 VertexTexCoord; 5 | in vec4 VertexColor; 6 | 7 | out vec3 Position; 8 | out vec2 TexCoord; 9 | out vec4 Color; 10 | 11 | uniform mat4 ModelViewMatrix; 12 | uniform mat3 NormalMatrix; 13 | uniform mat4 ProjectionMatrix; 14 | uniform mat4 MVP; 15 | 16 | void main() 17 | { 18 | TexCoord = VertexTexCoord; 19 | Color = VertexColor; 20 | Position = vec3(ModelViewMatrix * vec4(VertexPosition, 1.0)); 21 | gl_Position = MVP * vec4(VertexPosition, 1.0); 22 | } -------------------------------------------------------------------------------- /engineResources/shaders/spriteShader.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "b87ce577-1711-40ad-bf7a-2a5ff3214a46" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/spritesheets/standardSprites.dsprites.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::SpriteSheetResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "7db95fb4-622a-4c6c-a9e7-30ade44e43b1" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/spritesheets/standardSprites.dsprites.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/spritesheets/standardSprites.dsprites.tga -------------------------------------------------------------------------------- /engineResources/spritesheets/standardSprites.dsprites.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "2492a12b-9269-4e67-bc78-e0f4da4bf9eb" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/black.png -------------------------------------------------------------------------------- /engineResources/textures/black.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "e64c73a7-f853-4308-8085-7bbb08728a20" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/cubemap-xneg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/cubemap-xneg.png -------------------------------------------------------------------------------- /engineResources/textures/cubemap-xneg.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "a8c84a1a-f589-40a5-a42c-2afc79878ea3" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/cubemap-xpos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/cubemap-xpos.png -------------------------------------------------------------------------------- /engineResources/textures/cubemap-xpos.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "fa331d47-3ba1-4453-9177-ea8194276f94" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/cubemap-yneg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/cubemap-yneg.png -------------------------------------------------------------------------------- /engineResources/textures/cubemap-yneg.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "b78f820c-9073-4e1e-a63a-de188fc97daa" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/cubemap-ypos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/cubemap-ypos.png -------------------------------------------------------------------------------- /engineResources/textures/cubemap-ypos.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "adb6a6fd-b434-4e4c-a10c-cb0cb8cf31a8" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/cubemap-zneg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/cubemap-zneg.png -------------------------------------------------------------------------------- /engineResources/textures/cubemap-zneg.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "60760012-a010-49ea-9b3f-91b03f6b2669" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/cubemap-zpos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/cubemap-zpos.png -------------------------------------------------------------------------------- /engineResources/textures/cubemap-zpos.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "49b82284-ca19-43f2-bf84-831ad4e275d0" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/ui_caret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/ui_caret.png -------------------------------------------------------------------------------- /engineResources/textures/ui_caret.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "10f63e7b-e91f-466f-9a6f-b7221695091c" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/ui_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/ui_circle.png -------------------------------------------------------------------------------- /engineResources/textures/ui_circle.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "1f2ce41a-788a-4344-86b6-3c7aaf5d0ad1" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/ui_rounded_rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/ui_rounded_rect.png -------------------------------------------------------------------------------- /engineResources/textures/ui_rounded_rect.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "f7087017-d7d2-4d5e-8a53-448d4d08190c" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /engineResources/textures/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/engineResources/textures/white.png -------------------------------------------------------------------------------- /engineResources/textures/white.png.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "a43c2a20-8738-4313-96dd-57547edc61b1" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/levels/ShaderExamples.derylevel.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::LevelResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "35de5cff-28a8-18a7-a3a1-00ff06585d46" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/levels/fontRendering.derylevel.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::LevelResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "ae4980e6-28a9-40f3-a399-37c0f5a5e463" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/levels/normalMap.derylevel.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::LevelResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "36de5cff-57fa-1260-99d5-00ff06585d46" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/levels/spriteRendering.derylevel.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::LevelResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "3732a923-1023-4f27-bef9-e0e74360b89f" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/levels/threeSquirrels.derylevel.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::LevelResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "fbd47f01-1f16-474d-bfbe-6b68958da7cc" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/diffuseVertMaterial.derymaterial: -------------------------------------------------------------------------------- 1 | { 2 | "ShaderId": "e73b5549-e7ae-47c1-9ffb-6355e1e171cc", 3 | "Textures": [], 4 | "Bools": [], 5 | "Ints": [], 6 | "Floats": [], 7 | "FloatArrays": [], 8 | "Float3s": [], 9 | "Float4s": [ 10 | { 11 | "Name": "Kd", 12 | "Value": { 13 | "x": 1.0, 14 | "y": 1.0, 15 | "z": 1.0, 16 | "w": 1.0 17 | } 18 | } 19 | ], 20 | "Float3x3s": [], 21 | "Float4x4s": [], 22 | "Float4x4Arrays": [], 23 | "SubroutineValues": [] 24 | } -------------------------------------------------------------------------------- /exampleProject/materials/diffuseVertMaterial.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "3d15b574-e99a-4c11-8d94-d3cfc3da9bc9" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/discardShaderMaterial.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "afadee0b-1b3d-424c-ae8d-477deb2db1bf" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/flame_cubemap.dcubemap: -------------------------------------------------------------------------------- 1 | { 2 | "cubemapData": { 3 | "texZPos": "56de1116-82e9-4360-97a9-d0e063efdc44", 4 | "texZNeg": "3d83beab-dbd4-48e9-b32b-2ae6db7797f2", 5 | "texYPos": "e3cef09f-af3b-406a-a8de-48dde3cd0c0c", 6 | "texYNeg": "1a091d98-7157-4b38-a6a3-b2bd867e3e0c", 7 | "texXNeg": "d5e6a438-069c-43f6-8b09-cca26c6421ab", 8 | "texXPos": "55d83928-6cfd-4efa-8abd-68bf1c88555b" 9 | } 10 | } -------------------------------------------------------------------------------- /exampleProject/materials/flame_cubemap.dcubemap.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::CubemapResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "1ac6ba1c-7d43-4e02-a1c9-576f9a9c6c33" 12 | } 13 | }, 14 | "m_slot": 0 15 | } 16 | } 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /exampleProject/materials/flame_skybox.derymaterial: -------------------------------------------------------------------------------- 1 | { 2 | "ShaderId": "bef58587-98d5-4351-9a78-07f6d1f93a87", 3 | "Textures": [ 4 | { 5 | "Name": "cubemap", 6 | "Value": "1ac6ba1c-7d43-4e02-a1c9-576f9a9c6c33" 7 | } 8 | ], 9 | "Bools": [], 10 | "Ints": [], 11 | "Floats": [], 12 | "FloatArrays": [], 13 | "Float3s": [], 14 | "Float4s": [], 15 | "Float3x3s": [], 16 | "Float4x4s": [], 17 | "Float4x4Arrays": [], 18 | "SubroutineValues": [] 19 | } -------------------------------------------------------------------------------- /exampleProject/materials/flame_skybox.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "d9218190-18cb-4be4-8294-da570ceee433" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/normalMapCrate.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "5b4946c0-ea98-4dc5-8984-56626e5814ba" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/normalMapPavement.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "0df3d412-0035-4b52-9bcb-d9648a2bbf97" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/phongVertFlatMaterial.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "61a35185-b9fb-4549-bd85-e451b44a3ca7" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/phongVertMaterial.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "f486c300-2871-4494-b458-ae91e333fd09" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/phongVertTwoSidedMaterial.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "e59b0287-0aec-4378-9dab-daf8900e7dcb" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/materials/stormydays_cubemap.dcubemap: -------------------------------------------------------------------------------- 1 | { 2 | "cubemapData": { 3 | "texXPos": "cce7792a-4d75-4bf5-8c20-099c8133a018", 4 | "texXNeg": "fe9fe899-eaa8-4a97-b943-1293a5b9701c", 5 | "texYNeg": "df72ce2d-c882-4de3-a84e-8207865d847d", 6 | "texYPos": "8751f9ce-ab2a-4b20-958a-86f24570aba8", 7 | "texZNeg": "a7ed30f8-0490-40d3-8630-e3b52de3f064", 8 | "texZPos": "22f6b427-346c-48aa-b2e2-ec442729fa6b" 9 | } 10 | } -------------------------------------------------------------------------------- /exampleProject/materials/stormydays_cubemap.dcubemap.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::CubemapResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "1992fb25-4511-45e2-b944-6a153fead285" 12 | } 13 | }, 14 | "m_slot": 0 15 | } 16 | } 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /exampleProject/materials/stormydays_skybox.derymaterial: -------------------------------------------------------------------------------- 1 | { 2 | "ShaderId": "bef58587-98d5-4351-9a78-07f6d1f93a87", 3 | "Textures": [ 4 | { 5 | "Name": "cubeMap", 6 | "Value": "1992fb25-4511-45e2-b944-6a153fead285" 7 | } 8 | ], 9 | "Bools": [], 10 | "Ints": [], 11 | "Floats": [], 12 | "FloatArrays": [], 13 | "Float3s": [], 14 | "Float4s": [], 15 | "Float3x3s": [], 16 | "Float4x4s": [], 17 | "Float4x4Arrays": [], 18 | "SubroutineValues": [] 19 | } -------------------------------------------------------------------------------- /exampleProject/materials/stormydays_skybox.derymaterial.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MaterialResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "c6b94876-5f49-4faa-b5ed-5665bffcd987" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/models/acorn.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "70878dd4-3199-468e-82d3-91aa1f2c89ce" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /exampleProject/models/monkeyOpen.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "d70e47aa-02d0-40e6-8abf-23f28a674fe7" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /exampleProject/models/spikeCube.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "84d21022-d7b4-4dee-b617-90763d995773" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /exampleProject/models/squirrel.obj.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::MeshResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "b1b135df-0f8a-4ebf-bd9d-a98127daf307" 12 | } 13 | }, 14 | "m_meshIndex": 0, 15 | "m_meshName": "", 16 | "m_skeletonId": "00000000-0000-0000-0000-000000000000", 17 | "m_flags": 0 18 | } 19 | } 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /exampleProject/models/wood_crate_model.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/models/wood_crate_model.fbx -------------------------------------------------------------------------------- /exampleProject/shaders/normalMap.vs.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::ShaderResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "5bc0addd-34ec-4d58-804e-8984cf59cb10" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/pavement_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/pavement_diffuse.tga -------------------------------------------------------------------------------- /exampleProject/textures/pavement_diffuse.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "0b3cd8e5-7e4b-4860-aeb6-30961b1c43a0" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/pavement_normal.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/pavement_normal.tga -------------------------------------------------------------------------------- /exampleProject/textures/pavement_normal.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "b942c851-fa5d-48f7-8bed-8d21d7758402" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/rebel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/rebel.jpg -------------------------------------------------------------------------------- /exampleProject/textures/rebel.jpg.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "d88e3c9a-dc0e-4dd7-add6-c81daf470610" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_bk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/flame/flame_bk.jpg -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_bk.jpg.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "56de1116-82e9-4360-97a9-d0e063efdc44" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_dn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/flame/flame_dn.jpg -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_dn.jpg.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "1a091d98-7157-4b38-a6a3-b2bd867e3e0c" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_ft.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/flame/flame_ft.jpg -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_ft.jpg.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "3d83beab-dbd4-48e9-b32b-2ae6db7797f2" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_lf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/flame/flame_lf.jpg -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_lf.jpg.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "d5e6a438-069c-43f6-8b09-cca26c6421ab" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_rt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/flame/flame_rt.jpg -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_rt.jpg.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "55d83928-6cfd-4efa-8abd-68bf1c88555b" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_up.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/flame/flame_up.jpg -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/flame/flame_up.jpg.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "e3cef09f-af3b-406a-a8de-48dde3cd0c0c" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/README.TXT: -------------------------------------------------------------------------------- 1 | STORMY DAYS 2 | high res 1024^2 environment map 3 | ships as TGA. 4 | 5 | 6 | By Jockum Skoglund aka hipshot 7 | hipshot@zfight.com 8 | www.zfight.com 9 | Stockholm, 2005 08 25 10 | 11 | 12 | Modify however you like, just cred me for my work, maybe link to my page. 13 | -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_bk.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/stormydays/stormydays_bk.tga -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_bk.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "fe9fe899-eaa8-4a97-b943-1293a5b9701c" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_dn.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/stormydays/stormydays_dn.tga -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_dn.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "df72ce2d-c882-4de3-a84e-8207865d847d" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_ft.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/stormydays/stormydays_ft.tga -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_ft.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "cce7792a-4d75-4bf5-8c20-099c8133a018" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_lf.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/stormydays/stormydays_lf.tga -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_lf.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "a7ed30f8-0490-40d3-8630-e3b52de3f064" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_rt.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/stormydays/stormydays_rt.tga -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_rt.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "22f6b427-346c-48aa-b2e2-ec442729fa6b" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_up.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/skyboxes/stormydays/stormydays_up.tga -------------------------------------------------------------------------------- /exampleProject/textures/skyboxes/stormydays/stormydays_up.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "8751f9ce-ab2a-4b20-958a-86f24570aba8" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_ambientOcclusion.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/wood_crate_ambientOcclusion.tga -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_ambientOcclusion.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "5d86e5b5-0c42-479b-ac7c-2b7725aa5c59" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_basecolor.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/wood_crate_basecolor.tga -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_basecolor.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "8f44b37f-ec08-4ca8-937c-c3909a38e370" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_emissive.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/wood_crate_emissive.tga -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_emissive.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "fb0ce504-d256-4b34-bd74-52ae6f057287" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_height.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/wood_crate_height.tga -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_height.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "e47a9e09-0d75-4f93-b75a-d0c68350e209" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_normal.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/exampleProject/textures/wood_crate_normal.tga -------------------------------------------------------------------------------- /exampleProject/textures/wood_crate_normal.tga.dmeta: -------------------------------------------------------------------------------- 1 | { 2 | "resources": [ 3 | { 4 | "polymorphic_id": 2147483649, 5 | "polymorphic_name": "DerydocaEngine::Resources::TextureResource", 6 | "ptr_wrapper": { 7 | "id": 2147483649, 8 | "data": { 9 | "__base_DerydocaEngine::Resources::Resource": { 10 | "__base_DerydocaEngine::Object": { 11 | "m_ID": "72669a45-5836-448e-9602-7d21a8dff9f0" 12 | } 13 | } 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /include/assimp/Compiler/poppack1.h: -------------------------------------------------------------------------------- 1 | 2 | // =============================================================================== 3 | // May be included multiple times - resets structure packing to the defaults 4 | // for all supported compilers. Reverts the changes made by #include 5 | // 6 | // Currently this works on the following compilers: 7 | // MSVC 7,8,9 8 | // GCC 9 | // BORLAND (complains about 'pack state changed but not reverted', but works) 10 | // =============================================================================== 11 | 12 | #ifndef AI_PUSHPACK_IS_DEFINED 13 | # error pushpack1.h must be included after poppack1.h 14 | #endif 15 | 16 | // reset packing to the original value 17 | #if defined(_MSC_VER) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__) 18 | # pragma pack( pop ) 19 | #endif 20 | #undef PACK_STRUCT 21 | 22 | #undef AI_PUSHPACK_IS_DEFINED 23 | -------------------------------------------------------------------------------- /include/assimp/ai_assert.h: -------------------------------------------------------------------------------- 1 | /** @file assert.h 2 | */ 3 | #ifndef AI_DEBUG_H_INC 4 | #define AI_DEBUG_H_INC 5 | 6 | #ifdef ASSIMP_BUILD_DEBUG 7 | # include 8 | # define ai_assert(expression) assert(expression) 9 | #else 10 | # define ai_assert(expression) 11 | #endif 12 | 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /include/assimp/defs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/include/assimp/defs.h -------------------------------------------------------------------------------- /include/assimp/matrix3x3.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/include/assimp/matrix3x3.h -------------------------------------------------------------------------------- /include/assimp/matrix3x3.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/include/assimp/matrix3x3.inl -------------------------------------------------------------------------------- /include/assimp/matrix4x4.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/include/assimp/matrix4x4.h -------------------------------------------------------------------------------- /include/assimp/matrix4x4.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/include/assimp/matrix4x4.inl -------------------------------------------------------------------------------- /include/glm/common.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/common.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_common.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/_fixes.hpp 3 | 4 | #include 5 | 6 | //! Workaround for compatibility with other libraries 7 | #ifdef max 8 | #undef max 9 | #endif 10 | 11 | //! Workaround for compatibility with other libraries 12 | #ifdef min 13 | #undef min 14 | #endif 15 | 16 | //! Workaround for Android 17 | #ifdef isnan 18 | #undef isnan 19 | #endif 20 | 21 | //! Workaround for Android 22 | #ifdef isinf 23 | #undef isinf 24 | #endif 25 | 26 | //! Workaround for Chrone Native Client 27 | #ifdef log2 28 | #undef log2 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /include/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_packing_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /include/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/include/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /include/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_vector_relational_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /include/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_half.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | typedef short hdata; 12 | 13 | GLM_FUNC_DECL float toFloat32(hdata value); 14 | GLM_FUNC_DECL hdata toFloat16(float const & value); 15 | 16 | }//namespace detail 17 | }//namespace glm 18 | 19 | #include "type_half.inl" 20 | -------------------------------------------------------------------------------- /include/glm/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat.inl 3 | 4 | -------------------------------------------------------------------------------- /include/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat4x4_sse2.inl 3 | 4 | namespace glm 5 | { 6 | 7 | }//namespace glm 8 | -------------------------------------------------------------------------------- /include/glm/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_vec.inl 3 | -------------------------------------------------------------------------------- /include/glm/exponential.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/exponential.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_exponential.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/geometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/geometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_geometric.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_swizzle 2 | /// @file glm/gtc/swizzle.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /include/glm/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_vec1 2 | /// @file glm/gtc/vec1.inl 3 | -------------------------------------------------------------------------------- /include/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | /// @file glm/gtx/float_normalize.inl 3 | 4 | #include 5 | 6 | namespace glm 7 | { 8 | template class vecType> 9 | GLM_FUNC_QUALIFIER vecType floatNormalize(vecType const & v) 10 | { 11 | return vecType(v) / static_cast(std::numeric_limits::max()); 12 | } 13 | 14 | }//namespace glm 15 | -------------------------------------------------------------------------------- /include/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_handed_coordinate_space 2 | /// @file glm/gtx/handed_coordinate_space.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER bool rightHanded 8 | ( 9 | tvec3 const & tangent, 10 | tvec3 const & binormal, 11 | tvec3 const & normal 12 | ) 13 | { 14 | return dot(cross(normal, tangent), binormal) > T(0); 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER bool leftHanded 19 | ( 20 | tvec3 const & tangent, 21 | tvec3 const & binormal, 22 | tvec3 const & normal 23 | ) 24 | { 25 | return dot(cross(normal, tangent), binormal) < T(0); 26 | } 27 | }//namespace glm 28 | -------------------------------------------------------------------------------- /include/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType log(genType const & x, genType const & base) 8 | { 9 | assert(x != genType(0)); 10 | return glm::log(x) / glm::log(base); 11 | } 12 | 13 | template class vecType> 14 | GLM_FUNC_QUALIFIER vecType log(vecType const & x, vecType const & base) 15 | { 16 | return glm::log(x) / glm::log(base); 17 | } 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /include/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T mixedProduct 8 | ( 9 | tvec3 const & v1, 10 | tvec3 const & v2, 11 | tvec3 const & v3 12 | ) 13 | { 14 | return dot(cross(v1, v2), v3); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /include/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tvec3 triangleNormal 8 | ( 9 | tvec3 const & p1, 10 | tvec3 const & p2, 11 | tvec3 const & p3 12 | ) 13 | { 14 | return normalize(cross(p1 - p2, p1 - p3)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /include/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | /// @file glm/gtx/normalize_dot.inl 3 | 4 | namespace glm 5 | { 6 | template class vecType> 7 | GLM_FUNC_QUALIFIER T normalizeDot(vecType const & x, vecType const & y) 8 | { 9 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 10 | } 11 | 12 | template class vecType> 13 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vecType const & x, vecType const & y) 14 | { 15 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 16 | } 17 | }//namespace glm 18 | -------------------------------------------------------------------------------- /include/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | /// @file glm/gtx/number_precision.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /include/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType pow2(genType const & x) 8 | { 9 | return x * x; 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER genType pow3(genType const & x) 14 | { 15 | return x * x * x; 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER genType pow4(genType const & x) 20 | { 21 | return (x * x) * (x * x); 22 | } 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /include/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat3x3 orthonormalize(tmat3x3 const & m) 8 | { 9 | tmat3x3 r = m; 10 | 11 | r[0] = normalize(r[0]); 12 | 13 | T d0 = dot(r[0], r[1]); 14 | r[1] -= r[0] * d0; 15 | r[1] = normalize(r[1]); 16 | 17 | T d1 = dot(r[1], r[2]); 18 | d0 = dot(r[0], r[2]); 19 | r[2] -= r[0] * d0 + r[1] * d1; 20 | r[2] = normalize(r[2]); 21 | 22 | return r; 23 | } 24 | 25 | template 26 | GLM_FUNC_QUALIFIER tvec3 orthonormalize(tvec3 const & x, tvec3 const & y) 27 | { 28 | return normalize(x - y * dot(y, x)); 29 | } 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /include/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType perp 8 | ( 9 | vecType const & x, 10 | vecType const & Normal 11 | ) 12 | { 13 | return x - proj(x, Normal); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /include/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vecType proj(vecType const & x, vecType const & Normal) 8 | { 9 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 10 | } 11 | }//namespace glm 12 | -------------------------------------------------------------------------------- /include/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.inl 3 | -------------------------------------------------------------------------------- /include/glm/gtx/scalar_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_scalar_relational 2 | /// @file glm/gtx/scalar_relational.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational 7 | /// @ingroup gtx 8 | /// 9 | /// @brief Extend a position from a source to a position at a defined length. 10 | /// 11 | /// need to be included to use these functionalities. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_GTX_extend extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup gtx_scalar_relational 25 | /// @{ 26 | 27 | 28 | 29 | /// @} 30 | }//namespace glm 31 | 32 | #include "scalar_relational.inl" 33 | -------------------------------------------------------------------------------- /include/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | /// @file glm/gtx/std_based_type.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /include/glm/gtx/transform.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_transform 2 | /// @file glm/gtx/transform.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER tmat4x4 translate(tvec3 const & v) 8 | { 9 | return translate(tmat4x4(static_cast(1)), v); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER tmat4x4 rotate(T angle, tvec3 const & v) 14 | { 15 | return rotate(tmat4x4(static_cast(1)), angle, v); 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER tmat4x4 scale(tvec3 const & v) 20 | { 21 | return scale(tmat4x4(static_cast(1)), v); 22 | } 23 | 24 | }//namespace glm 25 | -------------------------------------------------------------------------------- /include/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | /// @file glm/gtc/type_aligned.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /include/glm/gtx/type_trait.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/include/glm/gtx/type_trait.inl -------------------------------------------------------------------------------- /include/glm/integer.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/integer.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_integer.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/matrix.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/matrix.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_matrix.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/packing.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/packing.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_packing.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_sqrt_lowp(glm_vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sqrt_lowp(glm_vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /include/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /include/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /include/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /include/glm/trigonometric.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/trigonometric.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_trigonometric.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec2.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec3.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/type_vec4.hpp" 7 | -------------------------------------------------------------------------------- /include/glm/vector_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vector_relational.hpp 3 | 4 | #pragma once 5 | 6 | #include "detail/func_vector_relational.hpp" 7 | -------------------------------------------------------------------------------- /include/spdlog/details/console_globals.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #include "spdlog/details/null_mutex.h" 7 | #include 8 | 9 | namespace spdlog { 10 | namespace details { 11 | 12 | struct console_mutex 13 | { 14 | using mutex_t = std::mutex; 15 | static mutex_t &mutex() 16 | { 17 | static mutex_t s_mutex; 18 | return s_mutex; 19 | } 20 | }; 21 | 22 | struct console_nullmutex 23 | { 24 | using mutex_t = null_mutex; 25 | static mutex_t &mutex() 26 | { 27 | static mutex_t s_mutex; 28 | return s_mutex; 29 | } 30 | }; 31 | } // namespace details 32 | } // namespace spdlog 33 | -------------------------------------------------------------------------------- /include/spdlog/details/synchronous_factory.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #include "registry.h" 7 | 8 | namespace spdlog { 9 | 10 | // Default logger factory- creates synchronous loggers 11 | class logger; 12 | 13 | struct synchronous_factory 14 | { 15 | template 16 | static std::shared_ptr create(std::string logger_name, SinkArgs &&... args) 17 | { 18 | auto sink = std::make_shared(std::forward(args)...); 19 | auto new_logger = std::make_shared(std::move(logger_name), std::move(sink)); 20 | details::registry::instance().initialize_logger(new_logger); 21 | return new_logger; 22 | } 23 | }; 24 | } // namespace spdlog -------------------------------------------------------------------------------- /include/spdlog/fmt/fmt.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016-2018 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | 8 | // 9 | // Include a bundled header-only copy of fmtlib or an external one. 10 | // By default spdlog include its own copy. 11 | // 12 | 13 | #if !defined(SPDLOG_FMT_EXTERNAL) 14 | #ifdef SPDLOG_HEADER_ONLY 15 | #ifndef FMT_HEADER_ONLY 16 | #define FMT_HEADER_ONLY 17 | #endif 18 | #endif 19 | #ifndef FMT_USE_WINDOWS_H 20 | #define FMT_USE_WINDOWS_H 0 21 | #endif 22 | #include "bundled/core.h" 23 | #include "bundled/format.h" 24 | #else // SPDLOG_FMT_EXTERNAL is defined - use external fmtlib 25 | #include "fmt/core.h" 26 | #include "fmt/format.h" 27 | #endif 28 | -------------------------------------------------------------------------------- /include/spdlog/fmt/ostr.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright(c) 2016 Gabi Melman. 3 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 4 | // 5 | 6 | #pragma once 7 | // 8 | // include bundled or external copy of fmtlib's ostream support 9 | // 10 | #if !defined(SPDLOG_FMT_EXTERNAL) 11 | #ifndef FMT_HEADER_ONLY 12 | #define FMT_HEADER_ONLY 13 | #endif 14 | #include "bundled/ostream.h" 15 | #include "fmt.h" 16 | #else 17 | #include 18 | #endif 19 | -------------------------------------------------------------------------------- /include/spdlog/formatter.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #include "fmt/fmt.h" 7 | #include "spdlog/details/log_msg.h" 8 | 9 | namespace spdlog { 10 | 11 | class formatter 12 | { 13 | public: 14 | virtual ~formatter() = default; 15 | virtual void format(const details::log_msg &msg, fmt::memory_buffer &dest) = 0; 16 | virtual std::unique_ptr clone() const = 0; 17 | }; 18 | } // namespace spdlog 19 | -------------------------------------------------------------------------------- /include/spdlog/sinks/sink-inl.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #ifndef SPDLOG_HEADER_ONLY 7 | #include "spdlog/sinks/sink.h" 8 | #endif 9 | 10 | #include "spdlog/common.h" 11 | 12 | SPDLOG_INLINE bool spdlog::sinks::sink::should_log(spdlog::level::level_enum msg_level) const 13 | { 14 | return msg_level >= level_.load(std::memory_order_relaxed); 15 | } 16 | 17 | SPDLOG_INLINE void spdlog::sinks::sink::set_level(level::level_enum log_level) 18 | { 19 | level_.store(log_level, std::memory_order_relaxed); 20 | } 21 | 22 | SPDLOG_INLINE spdlog::level::level_enum spdlog::sinks::sink::level() const 23 | { 24 | return static_cast(level_.load(std::memory_order_relaxed)); 25 | } 26 | -------------------------------------------------------------------------------- /include/spdlog/version.h: -------------------------------------------------------------------------------- 1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. 2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) 3 | 4 | #pragma once 5 | 6 | #define SPDLOG_VER_MAJOR 1 7 | #define SPDLOG_VER_MINOR 4 8 | #define SPDLOG_VER_PATCH 0 9 | 10 | #define SPDLOG_VERSION (SPDLOG_VER_MAJOR * 10000 + SPDLOG_VER_MINOR * 100 + SPDLOG_VER_PATCH) 11 | -------------------------------------------------------------------------------- /libs/x86_64/Debug/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/libs/x86_64/Debug/glew32.dll -------------------------------------------------------------------------------- /libs/x86_64/Debug/glew32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/libs/x86_64/Debug/glew32.lib -------------------------------------------------------------------------------- /libs/x86_64/Dist/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/libs/x86_64/Dist/glew32.dll -------------------------------------------------------------------------------- /libs/x86_64/Dist/glew32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/libs/x86_64/Dist/glew32.lib -------------------------------------------------------------------------------- /libs/x86_64/Release/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/libs/x86_64/Release/glew32.dll -------------------------------------------------------------------------------- /libs/x86_64/Release/glew32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Derydoca/derydocaengine/a9cdb71082fbb879d9448dc0c1a95581681d61f1/libs/x86_64/Release/glew32.lib --------------------------------------------------------------------------------