├── README.md ├── dingus ├── changes.txt ├── dingus.dsp ├── dingus.dsw ├── dingus.vcproj ├── dingus │ ├── animator │ │ ├── AnimCurve.h │ │ ├── AnimDataType.h │ │ ├── AnimImmediateMixer.h │ │ ├── AnimStream.h │ │ ├── Animation.h │ │ ├── AnimationBunch.cpp │ │ ├── AnimationBunch.h │ │ └── SampledAnimation.h │ ├── app │ │ ├── DingusApplication.h │ │ ├── DingusSystem.cpp │ │ └── DingusSystem.h │ ├── audio │ │ ├── AudioContext.cpp │ │ ├── AudioContext.h │ │ ├── AudioListener.h │ │ ├── Sound.cpp │ │ ├── Sound.h │ │ ├── SoundResource.cpp │ │ ├── SoundResource.h │ │ ├── SoundWaveFmt.cpp │ │ └── SoundWaveFmt.h │ ├── console │ │ ├── Console.cpp │ │ ├── Console.h │ │ ├── D3DConsoleRenderingContext.cpp │ │ ├── D3DConsoleRenderingContext.h │ │ ├── FileConsoleRenderingContext.cpp │ │ ├── FileConsoleRenderingContext.h │ │ ├── W32StdConsoleRenderingContext.cpp │ │ ├── W32StdConsoleRenderingContext.h │ │ ├── WDebugConsoleRenderingContext.cpp │ │ └── WDebugConsoleRenderingContext.h │ ├── dxutils │ │ ├── D3DApplication.cpp │ │ ├── D3DApplication.h │ │ ├── D3DEnumeration.cpp │ │ ├── D3DEnumeration.h │ │ ├── D3DFont.cpp │ │ ├── D3DFont.h │ │ ├── D3DSaver.cpp │ │ ├── D3DSaver.h │ │ ├── D3DSettings.cpp │ │ ├── D3DSettings.h │ │ ├── D3Dutil.cpp │ │ ├── D3Dutil.h │ │ ├── DXConfigDB.cpp │ │ ├── DXConfigDB.h │ │ ├── DXUtil.cpp │ │ ├── DXUtil.h │ │ ├── DXUtils.rc │ │ ├── DirectX.ico │ │ ├── logo.bmp │ │ └── resource.h │ ├── gfx │ │ ├── DebugRenderer.cpp │ │ ├── DebugRenderer.h │ │ ├── GfxUtils.cpp │ │ ├── GfxUtils.h │ │ ├── Mesh.cpp │ │ ├── Mesh.h │ │ ├── ModelDesc.cpp │ │ ├── ModelDesc.h │ │ ├── ModelDescSerializer.cpp │ │ ├── ModelDescSerializer.h │ │ ├── RenderableBillboards.cpp │ │ ├── RenderableBillboards.h │ │ ├── RenderableOrderedBillboards.cpp │ │ ├── RenderableOrderedBillboards.h │ │ ├── VSKeyframeMeshRenderer.cpp │ │ ├── VSKeyframeMeshRenderer.h │ │ ├── VertexFormat.cpp │ │ ├── VertexFormat.h │ │ ├── Vertices.h │ │ ├── geometry │ │ │ ├── BufferChunk.h │ │ │ ├── ChunkSource.h │ │ │ ├── DynamicIBManager.cpp │ │ │ ├── DynamicIBManager.h │ │ │ ├── DynamicVBManager.cpp │ │ │ ├── DynamicVBManager.h │ │ │ ├── ManagedBuffer.h │ │ │ ├── VBChunkHelper.cpp │ │ │ ├── VBChunkHelper.h │ │ │ ├── VBChunkLock.h │ │ │ └── VBManagerSource.h │ │ ├── gui │ │ │ ├── Gui.cpp │ │ │ └── Gui.h │ │ ├── particles │ │ │ ├── Particle.h │ │ │ ├── ParticleEmitter.h │ │ │ ├── ParticleEmitters.h │ │ │ ├── ParticlePhysics.h │ │ │ ├── ParticlePhysicses.h │ │ │ ├── ParticleRenderHelper.cpp │ │ │ ├── ParticleRenderHelper.h │ │ │ ├── ParticleRenderer.h │ │ │ ├── ParticleSystem.h │ │ │ ├── Particles.h │ │ │ ├── TextureHelper.cpp │ │ │ ├── TextureHelper.h │ │ │ ├── VBParticleRenderer.h │ │ │ └── VBParticleRenderer_impl.h │ │ └── skeleton │ │ │ ├── CharacterAnimator.cpp │ │ │ ├── CharacterAnimator.h │ │ │ ├── SkeletonInfo.cpp │ │ │ ├── SkeletonInfo.h │ │ │ ├── SkinMesh.cpp │ │ │ ├── SkinMesh.h │ │ │ ├── SkinUpdater.cpp │ │ │ └── SkinUpdater.h │ ├── input │ │ ├── DIKeyboard.cpp │ │ ├── DIKeyboard.h │ │ ├── DIMouse.cpp │ │ ├── DIMouse.h │ │ ├── InputContext.cpp │ │ ├── InputContext.h │ │ ├── InputDevice.h │ │ ├── InputEvent.cpp │ │ ├── InputEvent.h │ │ └── InputListener.h │ ├── kernel │ │ ├── D3DDevice.cpp │ │ ├── D3DDevice.h │ │ ├── D3DDeviceCaps.cpp │ │ ├── D3DDeviceCaps.h │ │ ├── EffectLoader.cpp │ │ ├── EffectLoader.h │ │ ├── EffectStateManager.cpp │ │ ├── EffectStateManager.h │ │ ├── Proxies.h │ │ ├── ProxyEffect.cpp │ │ ├── ProxyEffect.h │ │ ├── RenderStats.cpp │ │ └── RenderStats.h │ ├── lua │ │ ├── LuaHelper.cpp │ │ ├── LuaHelper.h │ │ ├── LuaIterator.cpp │ │ ├── LuaIterator.h │ │ ├── LuaSingleton.h │ │ ├── LuaValue.cpp │ │ ├── LuaValue.h │ │ ├── LuaWrapper.cpp │ │ └── LuaWrapper.h │ ├── math │ │ ├── AABox.h │ │ ├── Angle.h │ │ ├── Constants.h │ │ ├── FPU.h │ │ ├── Interpolation.h │ │ ├── Line3.h │ │ ├── MathUtils.h │ │ ├── Matrix4x4.h │ │ ├── Plane.h │ │ ├── Primitives.h │ │ ├── Quaternion.h │ │ ├── Transform.cpp │ │ ├── Transform.h │ │ ├── Triangle.cpp │ │ ├── Triangle.h │ │ ├── TypeTraits.h │ │ ├── Vector2.h │ │ ├── Vector3.cpp │ │ ├── Vector3.h │ │ └── Vector4.h │ ├── renderer │ │ ├── EffectParams.cpp │ │ ├── EffectParams.h │ │ ├── EffectParamsNotifier.cpp │ │ ├── EffectParamsNotifier.h │ │ ├── RenderCamera.cpp │ │ ├── RenderCamera.h │ │ ├── RenderContext.cpp │ │ ├── RenderContext.h │ │ ├── Renderable.cpp │ │ ├── Renderable.h │ │ ├── RenderableBuffer.cpp │ │ ├── RenderableBuffer.h │ │ ├── RenderableMesh.cpp │ │ ├── RenderableMesh.h │ │ ├── RenderableQuad.cpp │ │ ├── RenderableQuad.h │ │ ├── RenderableSkin.cpp │ │ └── RenderableSkin.h │ ├── resource │ │ ├── AnimationBundle.cpp │ │ ├── AnimationBundle.h │ │ ├── CubeTextureBundle.cpp │ │ ├── CubeTextureBundle.h │ │ ├── CubeTextureCreator.cpp │ │ ├── CubeTextureCreator.h │ │ ├── DeviceResource.h │ │ ├── EffectBundle.cpp │ │ ├── EffectBundle.h │ │ ├── IndexBufferBundle.cpp │ │ ├── IndexBufferBundle.h │ │ ├── IndexBufferFillers.h │ │ ├── MeshBundle.cpp │ │ ├── MeshBundle.h │ │ ├── MeshCreator.h │ │ ├── MeshSerializer.cpp │ │ ├── MeshSerializer.h │ │ ├── ModelDescBundle.cpp │ │ ├── ModelDescBundle.h │ │ ├── ReloadableBundle.h │ │ ├── ResourceBundle.cpp │ │ ├── ResourceBundle.h │ │ ├── ResourceId.h │ │ ├── SharedCubeTextureBundle.cpp │ │ ├── SharedCubeTextureBundle.h │ │ ├── SharedMeshBundle.cpp │ │ ├── SharedMeshBundle.h │ │ ├── SharedResourceBundle.h │ │ ├── SharedSurfaceBundle.cpp │ │ ├── SharedSurfaceBundle.h │ │ ├── SharedTextureBundle.cpp │ │ ├── SharedTextureBundle.h │ │ ├── SharedVolumeBundle.cpp │ │ ├── SharedVolumeBundle.h │ │ ├── SkeletonInfoBundle.cpp │ │ ├── SkeletonInfoBundle.h │ │ ├── SkinMeshBundle.cpp │ │ ├── SkinMeshBundle.h │ │ ├── SoundBundle.cpp │ │ ├── SoundBundle.h │ │ ├── StorageResourceBundle.h │ │ ├── SurfaceCreator.cpp │ │ ├── SurfaceCreator.h │ │ ├── TextureBundle.cpp │ │ ├── TextureBundle.h │ │ ├── TextureCreator.cpp │ │ ├── TextureCreator.h │ │ ├── VertexDeclBundle.cpp │ │ ├── VertexDeclBundle.h │ │ ├── VolumeCreator.cpp │ │ └── VolumeCreator.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── utils │ │ ├── AssertHelper.h │ │ ├── Config.cpp │ │ ├── Config.h │ │ ├── CpuTimer.cpp │ │ ├── CpuTimer.h │ │ ├── Errors.cpp │ │ ├── Errors.h │ │ ├── FileHelper.cpp │ │ ├── FileHelper.h │ │ ├── FixedRateProcess.cpp │ │ ├── FixedRateProcess.h │ │ ├── InputFilter.h │ │ ├── MemUtil.h │ │ ├── MemoryPool.cpp │ │ ├── MemoryPool.h │ │ ├── Notifier.h │ │ ├── Perlin.cpp │ │ ├── Perlin.h │ │ ├── Pool.h │ │ ├── Random.cpp │ │ ├── Random.h │ │ ├── RefCounted.h │ │ ├── Registry.h │ │ ├── STLUtils.h │ │ ├── Singleton.h │ │ ├── StringHelper.cpp │ │ ├── StringHelper.h │ │ ├── Timer.cpp │ │ ├── Timer.h │ │ ├── fastvector.h │ │ ├── mmgr.cpp │ │ ├── mmgr.h │ │ ├── nommgr.h │ │ └── ringdeque.h ├── doc │ ├── README.md │ └── fileformats │ │ ├── AnimFileFormat.txt │ │ ├── FontFileFormat.txt │ │ ├── ModelFileFormat.txt │ │ └── meshFileFormat.txt ├── lib │ ├── lua.h │ └── lua.lib └── tools │ ├── 3dsMax │ ├── IGame │ │ └── readme-igame.txt │ ├── changes.txt │ ├── exportAnim │ │ ├── AnimData.h │ │ ├── DllEntry.cpp │ │ ├── IGameExporter.cpp │ │ ├── IGameExporter.def │ │ ├── IGameExporter.dsp │ │ ├── IGameExporter.dsw │ │ ├── IGameExporter.h │ │ ├── IGameExporter.rc │ │ ├── globals.h │ │ └── resource.h │ ├── exportMesh │ │ ├── DllEntry.cpp │ │ ├── IGameExporter.cpp │ │ ├── IGameExporter.def │ │ ├── IGameExporter.dsp │ │ ├── IGameExporter.dsw │ │ ├── IGameExporter.h │ │ ├── IGameExporter.rc │ │ ├── MeshProcessor.cpp │ │ ├── MeshProcessor.h │ │ ├── NVMeshMender.cpp │ │ ├── NVMeshMender.h │ │ ├── VertexFormat.cpp │ │ ├── VertexFormat.h │ │ ├── globals.h │ │ └── resource.h │ └── install.txt │ ├── AmbOccTool │ ├── Tool.sln │ ├── Tool.vcproj │ ├── changes.txt │ ├── notes.txt │ ├── readme.txt │ └── src │ │ ├── args.cpp │ │ ├── args.h │ │ ├── crackdecl.cpp │ │ ├── crackdecl.h │ │ ├── d3d.cpp │ │ ├── d3d.h │ │ ├── main.cpp │ │ └── stdafx.h │ ├── AtlasCreationToolFork │ ├── AtlasContainer.cpp │ ├── AtlasContainer.h │ ├── AtlasCreationTool.dsp │ ├── AtlasCreationTool.dsw │ ├── CmdLineOptions.cpp │ ├── CmdLineOptions.h │ ├── Packer.cpp │ ├── Packer.h │ ├── TATypes.h │ ├── TextureAtlasTool.cpp │ ├── TextureObject.cpp │ ├── TextureObject.h │ ├── changes.txt │ └── readme.txt │ ├── MeshTexer │ ├── Demo.dsp │ ├── Demo.dsw │ ├── changes.txt │ ├── data │ │ ├── EffectStates.lua │ │ ├── fx │ │ │ ├── baked.fx │ │ │ ├── checker.fx │ │ │ ├── lib │ │ │ │ ├── global.fx │ │ │ │ ├── meshtexer.fx │ │ │ │ ├── shared.fx │ │ │ │ └── structs.fx │ │ │ ├── mapped.fx │ │ │ ├── normalmap.fx │ │ │ └── texbaker.fx │ │ └── tex │ │ │ ├── Checker.png │ │ │ └── guiskin.dds │ ├── readme.txt │ └── src │ │ ├── Demo.rc │ │ ├── DirectX.ico │ │ ├── demo │ │ ├── Demo.cpp │ │ ├── Demo.h │ │ ├── DemoResources.h │ │ ├── Entity.cpp │ │ ├── Entity.h │ │ └── WinFileDlg.h │ │ ├── logo.bmp │ │ ├── resource.h │ │ ├── stdafx.cpp │ │ ├── stdafx.h │ │ └── system │ │ ├── Globals.cpp │ │ ├── Globals.h │ │ ├── System.cpp │ │ ├── System.h │ │ └── main.cpp │ ├── NormalMapperFork │ ├── ArgFileIO.cpp │ ├── ArgFileIO.h │ ├── AtiOctree.cpp │ ├── AtiOctree.h │ ├── AtiTriBoxMoller.cpp │ ├── AtiTriBoxMoller.h │ ├── NmFileIO.cpp │ ├── NmFileIO.h │ ├── NormalMapper.cpp │ ├── NormalMapper.dsp │ ├── NormalMapper.dsw │ ├── NormalMapper.rc │ ├── TGAIO.cpp │ ├── TGAIO.h │ ├── Types.h │ ├── args.cpp │ ├── args.h │ ├── changes.txt │ ├── logo.ico │ ├── readme.txt │ └── resource.h │ └── changes.txt ├── ic2005 ├── Demo.dsp ├── Demo.dsw ├── Demo.sln ├── Demo.vcproj ├── data │ ├── EffectStates.lua │ ├── fractures.txt │ ├── fx │ │ ├── attack2.fx │ │ ├── bed.fx │ │ ├── bedanim.fx │ │ ├── casterSimple.fx │ │ ├── casterSimpleA.fx │ │ ├── compositeDOF.fx │ │ ├── debug.fx │ │ ├── electricity.fx │ │ ├── electricityAtk.fx │ │ ├── electricityAtk2.fx │ │ ├── fadeinmesh.fx │ │ ├── filterBloom.fx │ │ ├── filterGaussX.fx │ │ ├── filterGaussY.fx │ │ ├── filterPoisson.fx │ │ ├── lib │ │ │ ├── commonWalls.fx │ │ │ ├── defines.fx │ │ │ ├── dof.fx │ │ │ ├── global.fx │ │ │ ├── shadowmap.fx │ │ │ ├── shared.fx │ │ │ ├── skinning.fx │ │ │ └── structs.fx │ │ ├── normalMap.fx │ │ ├── normalMapL.fx │ │ ├── normalMaps.fx │ │ ├── scrollerFloor.fx │ │ ├── skin.fx │ │ ├── skinCaster.fx │ │ ├── skinCasterSimple.fx │ │ ├── skinRefl.fx │ │ ├── wall_Dn.fx │ │ ├── wall_DnR.fx │ │ ├── wall_DnS.fx │ │ ├── wall_DnSA.fx │ │ ├── wall_DnSR.fx │ │ ├── wall_St.fx │ │ ├── wall_StR.fx │ │ ├── wall_StS.fx │ │ ├── wall_StS2R.fx │ │ └── walls.fx │ ├── model │ │ ├── caster │ │ │ └── Bicas.dmdl │ │ ├── castersimple │ │ │ ├── Bed.dmdl │ │ │ └── BedPieces.dmdl │ │ ├── normal │ │ │ ├── AttackFx1.dmdl │ │ │ ├── AttackFx1Int.dmdl │ │ │ ├── AttackFx2_1.dmdl │ │ │ ├── AttackFx2_2.dmdl │ │ │ ├── AttackFx3.dmdl │ │ │ ├── Bed.dmdl │ │ │ ├── BedPieces.dmdl │ │ │ ├── Bicas.dmdl │ │ │ ├── Electricity.dmdl │ │ │ ├── FadeInMesh.dmdl │ │ │ ├── Room2Bottom.dmdl │ │ │ ├── Room2Top.dmdl │ │ │ ├── RoomCeil.dmdl │ │ │ ├── RoomFloor.dmdl │ │ │ ├── RoomFloorFr.dmdl │ │ │ ├── ScrollerFloor.dmdl │ │ │ ├── Stone.dmdl │ │ │ ├── uvBackBottomBricks.dmdl │ │ │ ├── uvBigRosette.dmdl │ │ │ ├── uvCeilsBrick.dmdl │ │ │ ├── uvCenterPillars.dmdl │ │ │ ├── uvCenterPlate.dmdl │ │ │ ├── uvCorridor.dmdl │ │ │ ├── uvDoor.dmdl │ │ │ ├── uvDoorArc.dmdl │ │ │ ├── uvDoorArcSide.dmdl │ │ │ ├── uvDoorHandle.dmdl │ │ │ ├── uvDoorHandleAnchor.dmdl │ │ │ ├── uvDoorRosette_2x1tex.dmdl │ │ │ ├── uvDoorSide.dmdl │ │ │ ├── uvFloorBrick.dmdl │ │ │ ├── uvFrontArcBrs.dmdl │ │ │ ├── uvFrontBottomBricks.dmdl │ │ │ ├── uvFrontRosBricksA.dmdl │ │ │ ├── uvFrontRosBricksB.dmdl │ │ │ ├── uvFrontRosBricksC.dmdl │ │ │ ├── uvFrontRosBricksD.dmdl │ │ │ ├── uvFrontRosEnd.dmdl │ │ │ ├── uvFrontRosette.dmdl │ │ │ ├── uvFrontTopArcs.dmdl │ │ │ ├── uvFrontTopBricks.dmdl │ │ │ ├── uvGarg1Body.dmdl │ │ │ ├── uvGarg1Cage.dmdl │ │ │ ├── uvGarg2Body.dmdl │ │ │ ├── uvGarg2Cage.dmdl │ │ │ ├── uvGargoyleBackBricks.dmdl │ │ │ ├── uvGargoyleLeftBricks.dmdl │ │ │ ├── uvGargoyleRightBricks.dmdl │ │ │ ├── uvGargoyleTopBricks.dmdl │ │ │ ├── uvPillarBottom.dmdl │ │ │ ├── uvPillarBottomRailing.dmdl │ │ │ ├── uvPillarHead_2x1tex.dmdl │ │ │ ├── uvPostament.dmdl │ │ │ ├── uvRosetteCenter.dmdl │ │ │ ├── uvSideArcBrs.dmdl │ │ │ ├── uvSideCenterBackPlane.dmdl │ │ │ ├── uvSideCenterBottomBricks.dmdl │ │ │ ├── uvSideLeftTopBricks.dmdl │ │ │ ├── uvSideRightTopBricks.dmdl │ │ │ ├── uvSideTopArcs.dmdl │ │ │ ├── uvSmRosette.dmdl │ │ │ ├── uvSmallRosette.dmdl │ │ │ ├── uvTopBricks.dmdl │ │ │ ├── uvTopPillar.dmdl │ │ │ └── uvTorch.dmdl │ │ └── reflected │ │ │ ├── Bed.dmdl │ │ │ ├── Bicas.dmdl │ │ │ ├── RoomCeil.dmdl │ │ │ ├── RoomFloor.dmdl │ │ │ ├── RoomFloorFr.dmdl │ │ │ ├── uvBackBottomBricks.dmdl │ │ │ ├── uvBigRosette.dmdl │ │ │ ├── uvCeilsBrick.dmdl │ │ │ ├── uvCenterPillars.dmdl │ │ │ ├── uvCenterPlate.dmdl │ │ │ ├── uvCorridor.dmdl │ │ │ ├── uvDoor.dmdl │ │ │ ├── uvDoorArc.dmdl │ │ │ ├── uvDoorArcSide.dmdl │ │ │ ├── uvDoorHandle.dmdl │ │ │ ├── uvDoorHandleAnchor.dmdl │ │ │ ├── uvDoorRosette_2x1tex.dmdl │ │ │ ├── uvDoorSide.dmdl │ │ │ ├── uvFloorBrick.dmdl │ │ │ ├── uvFrontArcBrs.dmdl │ │ │ ├── uvFrontBottomBricks.dmdl │ │ │ ├── uvFrontRosBricksA.dmdl │ │ │ ├── uvFrontRosBricksB.dmdl │ │ │ ├── uvFrontRosBricksC.dmdl │ │ │ ├── uvFrontRosBricksD.dmdl │ │ │ ├── uvFrontRosEnd.dmdl │ │ │ ├── uvFrontRosette.dmdl │ │ │ ├── uvFrontTopArcs.dmdl │ │ │ ├── uvFrontTopBricks.dmdl │ │ │ ├── uvGarg1Body.dmdl │ │ │ ├── uvGarg1Cage.dmdl │ │ │ ├── uvGarg2Body.dmdl │ │ │ ├── uvGarg2Cage.dmdl │ │ │ ├── uvGargoyleBackBricks.dmdl │ │ │ ├── uvGargoyleLeftBricks.dmdl │ │ │ ├── uvGargoyleRightBricks.dmdl │ │ │ ├── uvGargoyleTopBricks.dmdl │ │ │ ├── uvPillarBottom.dmdl │ │ │ ├── uvPillarBottomRailing.dmdl │ │ │ ├── uvPillarHead_2x1tex.dmdl │ │ │ ├── uvPostament.dmdl │ │ │ ├── uvRosetteCenter.dmdl │ │ │ ├── uvSideArcBrs.dmdl │ │ │ ├── uvSideCenterBackPlane.dmdl │ │ │ ├── uvSideCenterBottomBricks.dmdl │ │ │ ├── uvSideLeftTopBricks.dmdl │ │ │ ├── uvSideRightTopBricks.dmdl │ │ │ ├── uvSideTopArcs.dmdl │ │ │ ├── uvSmRosette.dmdl │ │ │ ├── uvSmallRosette.dmdl │ │ │ ├── uvTopBricks.dmdl │ │ │ ├── uvTopPillar.dmdl │ │ │ └── uvTorch.dmdl │ ├── scene.lua │ └── scene2.lua ├── readme.txt ├── src │ ├── Demo.rc │ ├── DirectX.ico │ ├── demo │ │ ├── ComplexStuffEntity.cpp │ │ ├── ComplexStuffEntity.h │ │ ├── ControllableCharacter.cpp │ │ ├── ControllableCharacter.h │ │ ├── Demo.cpp │ │ ├── Demo.h │ │ ├── DemoResources.h │ │ ├── Entity.cpp │ │ ├── Entity.h │ │ ├── MeshEntity.cpp │ │ ├── MeshEntity.h │ │ ├── PostProcess.cpp │ │ ├── PostProcess.h │ │ ├── Scene.cpp │ │ ├── Scene.h │ │ ├── SceneInteractive.cpp │ │ ├── SceneInteractive.h │ │ ├── SceneMain.cpp │ │ ├── SceneMain.h │ │ ├── SceneScroller.cpp │ │ ├── SceneScroller.h │ │ ├── SceneShared.cpp │ │ ├── SceneShared.h │ │ ├── ThirdPersonCamera.cpp │ │ ├── ThirdPersonCamera.h │ │ ├── Tweaker.cpp │ │ ├── Tweaker.h │ │ └── wallz │ │ │ ├── AABox2.h │ │ │ ├── FractureScenario.cpp │ │ │ ├── FractureScenario.h │ │ │ ├── ODEMarshal.h │ │ │ ├── Physics.cpp │ │ │ ├── Physics.h │ │ │ ├── Quadtree.h │ │ │ ├── Triangulate.cpp │ │ │ ├── Triangulate.h │ │ │ ├── WallFracturer.cpp │ │ │ ├── WallFracturer.h │ │ │ ├── WallPhysics.cpp │ │ │ ├── WallPhysics.h │ │ │ ├── WallPieces.cpp │ │ │ └── WallPieces.h │ ├── extern │ │ ├── bass.h │ │ ├── bass.lib │ │ └── ode │ │ │ ├── inc │ │ │ └── ode │ │ │ │ ├── collision.h │ │ │ │ ├── collision_space.h │ │ │ │ ├── common.h │ │ │ │ ├── compatibility.h │ │ │ │ ├── config.h │ │ │ │ ├── contact.h │ │ │ │ ├── error.h │ │ │ │ ├── mass.h │ │ │ │ ├── matrix.h │ │ │ │ ├── memory.h │ │ │ │ ├── misc.h │ │ │ │ ├── objects.h │ │ │ │ ├── ode.h │ │ │ │ ├── odemath.h │ │ │ │ └── rotation.h │ │ │ ├── ode.dsp │ │ │ └── src │ │ │ ├── array.cpp │ │ │ ├── array.h │ │ │ ├── collision_kernel.cpp │ │ │ ├── collision_kernel.h │ │ │ ├── collision_quadtreespace.cpp │ │ │ ├── collision_sapspace.cpp │ │ │ ├── collision_space.cpp │ │ │ ├── collision_space_internal.h │ │ │ ├── collision_std.cpp │ │ │ ├── collision_std.h │ │ │ ├── collision_transform.cpp │ │ │ ├── collision_transform.h │ │ │ ├── collision_util.cpp │ │ │ ├── collision_util.h │ │ │ ├── error.cpp │ │ │ ├── fastdot.c │ │ │ ├── fastldlt.c │ │ │ ├── fastlsolve.c │ │ │ ├── fastltsolve.c │ │ │ ├── joint.cpp │ │ │ ├── joint.h │ │ │ ├── lcp.cpp │ │ │ ├── lcp.h │ │ │ ├── mass.cpp │ │ │ ├── mat.cpp │ │ │ ├── mat.h │ │ │ ├── matrix.cpp │ │ │ ├── memory.cpp │ │ │ ├── misc.cpp │ │ │ ├── objects.h │ │ │ ├── obstack.cpp │ │ │ ├── obstack.h │ │ │ ├── ode.cpp │ │ │ ├── odemath.cpp │ │ │ ├── opcode │ │ │ ├── IceAxes.h │ │ │ ├── IceContainer.cpp │ │ │ ├── IceContainer.h │ │ │ ├── IceFPU.h │ │ │ ├── IceMemoryMacros.h │ │ │ ├── IcePairs.h │ │ │ ├── IcePreprocessor.h │ │ │ ├── IceRevisitedRadix.cpp │ │ │ ├── IceRevisitedRadix.h │ │ │ ├── IceTypes.h │ │ │ └── OPC_IceHook.h │ │ │ ├── quickstep.cpp │ │ │ ├── quickstep.h │ │ │ ├── rotation.cpp │ │ │ ├── step.cpp │ │ │ ├── step.h │ │ │ ├── stepfast.cpp │ │ │ ├── util.cpp │ │ │ └── util.h │ ├── logo.bmp │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── system │ │ ├── Globals.cpp │ │ ├── Globals.h │ │ ├── MusicPlayer.cpp │ │ ├── MusicPlayer.h │ │ ├── System.cpp │ │ ├── System.h │ │ └── main.cpp └── todo.txt ├── nanobots ├── Demo.sln ├── Demo.vcproj ├── data │ ├── EffectStates.lua │ ├── directxdb.txt │ ├── fx │ │ ├── PointDecor.fx │ │ ├── PointDecorCell.fx │ │ ├── StreamEntity.fx │ │ ├── StreamImpostor.fx │ │ ├── attackBeam.fx │ │ ├── attackWave.fx │ │ ├── debug.fx │ │ ├── entity.fx │ │ ├── explosion.fx │ │ ├── level.fx │ │ ├── levelMega.fx │ │ ├── lib │ │ │ ├── defines.fx │ │ │ ├── fog.fx │ │ │ ├── global.fx │ │ │ ├── shadowmap.fx │ │ │ ├── shared.fx │ │ │ ├── skinning.fx │ │ │ └── structs.fx │ │ ├── minimap.fx │ │ ├── minimapLev.fx │ │ ├── nimbus.fx │ │ ├── point.fx │ │ ├── pointinjection.fx │ │ └── points.fx │ └── model │ │ └── normal │ │ ├── AI.dmdl │ │ ├── Blocker.dmdl │ │ ├── Collector.dmdl │ │ ├── Container.dmdl │ │ ├── Decor1.dmdl │ │ ├── Decor2.dmdl │ │ ├── Decor3a-b.dmdl │ │ ├── Decor3a.dmdl │ │ ├── Decor3b-b.dmdl │ │ ├── Decor3b.dmdl │ │ ├── Decor4.dmdl │ │ ├── Decor5.dmdl │ │ ├── Decor6.dmdl │ │ ├── Decor7.dmdl │ │ ├── Explorer.dmdl │ │ ├── IPCreator.dmdl │ │ ├── Level.dmdl │ │ ├── LevelMega.dmdl │ │ ├── Needle.dmdl │ │ ├── PAI.dmdl │ │ ├── PBlocker.dmdl │ │ ├── PCollector.dmdl │ │ ├── PContainer.dmdl │ │ ├── PExplorer.dmdl │ │ ├── PNeuroCtrl.dmdl │ │ ├── PointAZN.dmdl │ │ ├── PointHoshimi.dmdl │ │ ├── PointInjection.dmdl │ │ ├── PointMission.dmdl │ │ ├── Points.dmdl │ │ ├── StreamRed.dmdl │ │ ├── StreamWhite.dmdl │ │ └── Wall.dmdl ├── launchtest.bat └── src │ ├── Demo.rc │ ├── DirectX.ico │ ├── demo │ ├── ByteUtils.h │ ├── CameraReplay.cpp │ ├── CameraReplay.h │ ├── Demo.cpp │ ├── Demo.h │ ├── DemoResources.h │ ├── DemoUI.cpp │ ├── DemoUI.h │ ├── EntityInfoRenderer.cpp │ ├── EntityInfoRenderer.h │ ├── GameInfo.cpp │ ├── GameInfo.h │ ├── GameSetupUI.cpp │ ├── GameSetupUI.h │ ├── MinimapRenderer.cpp │ ├── MinimapRenderer.h │ ├── StreamImpostorsRenderer.cpp │ ├── StreamImpostorsRenderer.h │ ├── entity │ │ ├── ActorEntity.cpp │ │ ├── ActorEntity.h │ │ ├── AttackEntity.cpp │ │ ├── AttackEntity.h │ │ ├── Entity.cpp │ │ ├── Entity.h │ │ ├── EntityManager.cpp │ │ ├── EntityManager.h │ │ ├── MeshEntity.cpp │ │ ├── MeshEntity.h │ │ ├── PointEntity.cpp │ │ ├── PointEntity.h │ │ ├── StreamEntity.cpp │ │ └── StreamEntity.h │ ├── game │ │ ├── GameColors.cpp │ │ ├── GameColors.h │ │ ├── GameDesc.cpp │ │ ├── GameDesc.h │ │ ├── GameEntity.cpp │ │ ├── GameEntity.h │ │ ├── GameMap.cpp │ │ ├── GameMap.h │ │ ├── GameState.cpp │ │ ├── GameState.h │ │ └── GameTypes.h │ ├── map │ │ ├── Collider.cpp │ │ ├── Collider.h │ │ ├── ColliderMeshSphere.cpp │ │ ├── GenericMesh.h │ │ ├── LevelMesh.cpp │ │ ├── LevelMesh.h │ │ ├── PointsMesh.cpp │ │ ├── PointsMesh.h │ │ ├── SubdivMesh.cpp │ │ ├── SubdivMesh.h │ │ ├── TriangleMesh.cpp │ │ ├── TriangleMesh.h │ │ ├── Turbulence.cpp │ │ └── Turbulence.h │ └── net │ │ ├── NetInterface.cpp │ │ ├── NetInterface.h │ │ ├── NetMessages.cpp │ │ └── NetMessages.h │ ├── extern │ ├── Opcode │ │ ├── Ice │ │ │ ├── IceAABB.cpp │ │ │ ├── IceAABB.h │ │ │ ├── IceAxes.h │ │ │ ├── IceBoundingSphere.h │ │ │ ├── IceContainer.cpp │ │ │ ├── IceContainer.h │ │ │ ├── IceFPU.h │ │ │ ├── IceHPoint.cpp │ │ │ ├── IceHPoint.h │ │ │ ├── IceIndexedTriangle.cpp │ │ │ ├── IceIndexedTriangle.h │ │ │ ├── IceLSS.h │ │ │ ├── IceMatrix3x3.cpp │ │ │ ├── IceMatrix3x3.h │ │ │ ├── IceMatrix4x4.cpp │ │ │ ├── IceMatrix4x4.h │ │ │ ├── IceMemoryMacros.h │ │ │ ├── IceOBB.cpp │ │ │ ├── IceOBB.h │ │ │ ├── IcePairs.h │ │ │ ├── IcePlane.cpp │ │ │ ├── IcePlane.h │ │ │ ├── IcePoint.cpp │ │ │ ├── IcePoint.h │ │ │ ├── IcePreprocessor.h │ │ │ ├── IceRandom.cpp │ │ │ ├── IceRandom.h │ │ │ ├── IceRay.cpp │ │ │ ├── IceRay.h │ │ │ ├── IceRevisitedRadix.cpp │ │ │ ├── IceRevisitedRadix.h │ │ │ ├── IceSegment.cpp │ │ │ ├── IceSegment.h │ │ │ ├── IceTriangle.cpp │ │ │ ├── IceTriangle.h │ │ │ ├── IceTrilist.h │ │ │ ├── IceTypes.h │ │ │ ├── IceUtils.cpp │ │ │ └── IceUtils.h │ │ ├── OPC_AABBCollider.cpp │ │ ├── OPC_AABBCollider.h │ │ ├── OPC_AABBTree.cpp │ │ ├── OPC_AABBTree.h │ │ ├── OPC_BaseModel.cpp │ │ ├── OPC_BaseModel.h │ │ ├── OPC_BoxBoxOverlap.h │ │ ├── OPC_BoxPruning.cpp │ │ ├── OPC_BoxPruning.h │ │ ├── OPC_Collider.cpp │ │ ├── OPC_Collider.h │ │ ├── OPC_Common.cpp │ │ ├── OPC_Common.h │ │ ├── OPC_HybridModel.cpp │ │ ├── OPC_HybridModel.h │ │ ├── OPC_IceHook.h │ │ ├── OPC_LSSAABBOverlap.h │ │ ├── OPC_LSSCollider.cpp │ │ ├── OPC_LSSCollider.h │ │ ├── OPC_LSSTriOverlap.h │ │ ├── OPC_MeshInterface.cpp │ │ ├── OPC_MeshInterface.h │ │ ├── OPC_Model.cpp │ │ ├── OPC_Model.h │ │ ├── OPC_OBBCollider.cpp │ │ ├── OPC_OBBCollider.h │ │ ├── OPC_OptimizedTree.cpp │ │ ├── OPC_OptimizedTree.h │ │ ├── OPC_Picking.cpp │ │ ├── OPC_Picking.h │ │ ├── OPC_PlanesAABBOverlap.h │ │ ├── OPC_PlanesCollider.cpp │ │ ├── OPC_PlanesCollider.h │ │ ├── OPC_PlanesTriOverlap.h │ │ ├── OPC_RayAABBOverlap.h │ │ ├── OPC_RayCollider.cpp │ │ ├── OPC_RayCollider.h │ │ ├── OPC_RayTriOverlap.h │ │ ├── OPC_Settings.h │ │ ├── OPC_SphereAABBOverlap.h │ │ ├── OPC_SphereCollider.cpp │ │ ├── OPC_SphereCollider.h │ │ ├── OPC_SphereTriOverlap.h │ │ ├── OPC_SweepAndPrune.cpp │ │ ├── OPC_SweepAndPrune.h │ │ ├── OPC_TreeBuilders.cpp │ │ ├── OPC_TreeBuilders.h │ │ ├── OPC_TreeCollider.cpp │ │ ├── OPC_TreeCollider.h │ │ ├── OPC_TriBoxOverlap.h │ │ ├── OPC_TriTriOverlap.h │ │ ├── OPC_VolumeCollider.cpp │ │ ├── OPC_VolumeCollider.h │ │ ├── Opcode.cpp │ │ ├── Opcode.dsp │ │ ├── Opcode.h │ │ ├── Opcode.vcproj │ │ ├── ReadMe.txt │ │ ├── StdAfx.cpp │ │ ├── StdAfx.h │ │ └── TemporalCoherence.txt │ └── zlib │ │ ├── adler32.c │ │ ├── compress.c │ │ ├── crc32.c │ │ ├── crc32.h │ │ ├── crypt.h │ │ ├── deflate.c │ │ ├── deflate.h │ │ ├── gzio.c │ │ ├── infback.c │ │ ├── inffast.c │ │ ├── inffast.h │ │ ├── inffixed.h │ │ ├── inflate.c │ │ ├── inflate.h │ │ ├── inftrees.c │ │ ├── inftrees.h │ │ ├── ioapi.c │ │ ├── ioapi.h │ │ ├── trees.c │ │ ├── trees.h │ │ ├── uncompr.c │ │ ├── unzip.c │ │ ├── unzip.h │ │ ├── win32 │ │ └── zlib.dsp │ │ ├── zconf.h │ │ ├── zip.c │ │ ├── zip.h │ │ ├── zlib.h │ │ ├── zutil.c │ │ └── zutil.h │ ├── logo.bmp │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── system │ ├── Globals.cpp │ ├── Globals.h │ ├── System.cpp │ ├── System.h │ └── main.cpp ├── testEffects ├── Demo.dsp ├── Demo.dsw ├── data │ ├── EffectStates.lua │ ├── fx │ │ ├── color.fx │ │ ├── colorAdd.fx │ │ ├── colorBlend.fx │ │ ├── colorMul.fx │ │ ├── funky.fx │ │ ├── lib │ │ │ ├── global.fx │ │ │ ├── shared.fx │ │ │ └── structs.fx │ │ ├── texture.fx │ │ ├── textureAlphaTest.fx │ │ └── textureSpec.fx │ ├── mesh │ │ ├── Box.dmesh │ │ ├── Cylinder.dmesh │ │ ├── Table.dmesh │ │ ├── Torus.dmesh │ │ └── billboard.dmesh │ └── tex │ │ ├── Checker.png │ │ └── guiskin.dds ├── results.xls └── src │ ├── Demo.rc │ ├── DirectX.ico │ ├── demo │ ├── Demo.cpp │ ├── Demo.h │ ├── Entity.cpp │ ├── Entity.h │ ├── MeshEntity.cpp │ └── MeshEntity.h │ ├── logo.bmp │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── system │ ├── Globals.cpp │ ├── Globals.h │ ├── System.cpp │ ├── System.h │ └── main.cpp ├── testHDR ├── Demo.dsp ├── Demo.dsw ├── Demo.sln ├── Demo.vcproj ├── data │ ├── EffectStates.lua │ └── fx │ │ ├── bloom.fx │ │ ├── brightPass.fx │ │ ├── calcAdaptedLum.fx │ │ ├── caster.fx │ │ ├── downsample4x4.fx │ │ ├── finalScenePass.fx │ │ ├── lib │ │ ├── global.fx │ │ ├── hdrlib.fx │ │ ├── shadowmap.fx │ │ ├── shared.fx │ │ └── structs.fx │ │ ├── object.fx │ │ ├── objectGround.fx │ │ ├── objectLight.fx │ │ ├── resampleAvgLum.fx │ │ ├── resampleAvgLumExp.fx │ │ ├── sampleAvgLum.fx │ │ └── skybox.fx ├── readme.txt └── src │ ├── Demo.rc │ ├── DirectX.ico │ ├── demo │ ├── Demo.cpp │ ├── Demo.h │ ├── Entity.cpp │ └── Entity.h │ ├── logo.bmp │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── system │ ├── Globals.cpp │ ├── Globals.h │ ├── System.cpp │ ├── System.h │ └── main.cpp ├── testLotsOfGuys ├── Demo.sln ├── Demo.vcproj ├── data │ ├── EffectStates.lua │ └── fx │ │ ├── lib │ │ ├── global.fx │ │ ├── shared.fx │ │ ├── skinning.fx │ │ └── structs.fx │ │ └── skin.fx └── src │ ├── Demo.rc │ ├── DirectX.ico │ ├── demo │ ├── ComplexStuffEntity.cpp │ ├── ComplexStuffEntity.h │ ├── Demo.cpp │ ├── Demo.h │ ├── DemoResources.h │ ├── Entity.cpp │ ├── Entity.h │ ├── IdlePlayer.cpp │ └── IdlePlayer.h │ ├── logo.bmp │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── system │ ├── Globals.cpp │ ├── Globals.h │ ├── System.cpp │ ├── System.h │ └── main.cpp ├── testPerspShadows ├── Demo.sln ├── Demo.vcproj ├── data │ ├── EffectStates.lua │ ├── fx │ │ ├── caster.fx │ │ ├── debug.fx │ │ ├── lib │ │ │ ├── global.fx │ │ │ ├── shadowmap.fx │ │ │ ├── shared.fx │ │ │ └── structs.fx │ │ ├── object.fx │ │ └── zfill.fx │ ├── mesh │ │ ├── ConeBig.dmesh │ │ ├── FloorTileBig.dmesh │ │ ├── House.dmesh │ │ ├── Table.dmesh │ │ └── Torus.dmesh │ └── scene.txt └── src │ ├── Demo.rc │ ├── DirectX.ico │ ├── demo │ ├── Demo.cpp │ ├── Demo.h │ ├── DemoResources.h │ ├── Entity.cpp │ ├── Entity.h │ ├── Hull.cpp │ ├── Hull.h │ ├── ShadowBufferRTManager.cpp │ ├── ShadowBufferRTManager.h │ ├── Shadows.cpp │ └── Shadows.h │ ├── logo.bmp │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── system │ ├── Globals.cpp │ ├── Globals.h │ ├── System.cpp │ ├── System.h │ └── main.cpp ├── testShadows ├── Demo.sln ├── Demo.vcproj ├── data │ ├── EffectStates.lua │ ├── fx │ │ ├── caster.fx │ │ ├── debug.fx │ │ ├── lib │ │ │ ├── global.fx │ │ │ ├── shadowmap.fx │ │ │ ├── shared.fx │ │ │ └── structs.fx │ │ ├── object.fx │ │ └── zfill.fx │ ├── mesh │ │ ├── Cone.dmesh │ │ ├── FloorTile.dmesh │ │ ├── Table.dmesh │ │ ├── Teapot.dmesh │ │ └── Torus.dmesh │ └── scene.txt └── src │ ├── Demo.rc │ ├── DirectX.ico │ ├── demo │ ├── ConeLib.cpp │ ├── ConeLib.h │ ├── Demo.cpp │ ├── Demo.h │ ├── DemoResources.h │ ├── Entity.cpp │ ├── Entity.h │ ├── ShadowBufferRTManager.cpp │ ├── ShadowBufferRTManager.h │ ├── Shadows.cpp │ └── Shadows.h │ ├── logo.bmp │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── system │ ├── Globals.cpp │ ├── Globals.h │ ├── System.cpp │ ├── System.h │ └── main.cpp ├── testSoftShadows ├── Demo.dsp ├── Demo.dsw ├── data │ ├── fx │ │ ├── box.fx │ │ ├── casterSoft.fx │ │ ├── entity.fx │ │ ├── filterGaussX.fx │ │ ├── filterGaussY.fx │ │ ├── filterPoisson.fx │ │ └── lib │ │ │ ├── global.fx │ │ │ ├── shadowmap.fx │ │ │ ├── shared.fx │ │ │ └── structs.fx │ └── mesh │ │ ├── Box.dmesh │ │ ├── Cylinder.dmesh │ │ ├── Table.dmesh │ │ ├── Torus.dmesh │ │ └── billboard.dmesh └── src │ ├── Demo.rc │ ├── DirectX.ico │ ├── demo │ ├── Demo.cpp │ ├── Demo.h │ ├── DemoResources.h │ ├── Entity.cpp │ ├── Entity.h │ ├── MeshEntity.cpp │ └── MeshEntity.h │ ├── logo.bmp │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── system │ ├── Globals.cpp │ ├── Globals.h │ ├── System.cpp │ ├── System.h │ └── main.cpp └── vaikairoks ├── Demo.dsp ├── Demo.dsw ├── data ├── Atlas.tai └── words.txt └── src ├── Demo.rc ├── DirectX.ico ├── demo ├── Demo.cpp └── Demo.h ├── logo.bmp ├── resource.h ├── stdafx.cpp ├── stdafx.h └── system ├── Globals.cpp ├── Globals.h ├── System.cpp ├── System.h └── main.cpp /dingus/dingus.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "dingus"=.\dingus.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /dingus/dingus/animator/AnimDataType.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __ANIM_DATA_TYPE_H 6 | #define __ANIM_DATA_TYPE_H 7 | 8 | namespace dingus { 9 | 10 | // NOTE: don't change the constants! exported files might have them! 11 | 12 | /** Animation type in a data file (and nowhere else). */ 13 | enum eAnimDataFileType { 14 | ANIMTYPE_CUSTOM = 0, 15 | ANIMTYPE_FLT = 1, // 1 float 16 | ANIMTYPE_INT = 2, // 1 int 17 | ANIMTYPE_VEC3 = 3, // 3 floats 18 | ANIMTYPE_QUAT = 4, // 4 floats, to be treated as quaternion 19 | ANIMTYPE_COLOR = 5, // 1 int (d3dcolor), to be treated as vector4 20 | ANIMTYPE_FLT_H = 6, // 1 16bit float 21 | ANIMTYPE_VEC3_H = 7, // 3 16bit floats 22 | ANIMTYPE_QUAT_H = 8, // 4 16bit floats - quaternion 23 | }; 24 | 25 | }; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /dingus/dingus/animator/AnimationBunch.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "AnimationBunch.h" 7 | 8 | using namespace dingus; 9 | 10 | CAnimationBunch::~CAnimationBunch() 11 | { 12 | stl_utils::wipe_map( mVector3Anims ); 13 | stl_utils::wipe_map( mVector4Anims ); 14 | stl_utils::wipe_map( mQuatAnims ); 15 | stl_utils::wipe_map( mFloatAnims ); 16 | } 17 | 18 | void CAnimationBunch::endCurves() 19 | { 20 | int n = getCurveCount(); 21 | for( int i = 0; i < n; ++i ) { 22 | int ipar = mCurveDescs[i].mParentIndex; 23 | int j; 24 | for( j = i; j < n; ++j ) { 25 | if( mCurveDescs[j].mParentIndex == ipar ) 26 | break; 27 | } 28 | mCurveDescs[i].mChildrenCount = (j-i); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /dingus/dingus/audio/AudioListener.h: -------------------------------------------------------------------------------- 1 | #ifndef __AUDIO_LISTENER_H 2 | #define __AUDIO_LISTENER_H 3 | 4 | #include "../math/Matrix4x4.h" 5 | 6 | namespace dingus { 7 | 8 | 9 | class SAudioListener { 10 | public: 11 | SAudioListener() 12 | : velocity(0,0,0), rolloffFactor(1.0f), dopplerFactor(1.0f) { transform.identify(); } 13 | 14 | /// World space transform 15 | SMatrix4x4 transform; 16 | /// World space velocity 17 | SVector3 velocity; 18 | /// Rolloff factor 19 | float rolloffFactor; 20 | /// Doppler factor 21 | float dopplerFactor; 22 | }; 23 | 24 | 25 | }; // namespace 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /dingus/dingus/console/D3DConsoleRenderingContext.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __D3DCONSOLE_H 6 | #define __D3DCONSOLE_H 7 | 8 | #include "Console.h" 9 | 10 | namespace dingus { 11 | 12 | class CD3DFont; 13 | 14 | 15 | class CD3DTextBoxConsoleRenderingContext : public IConsoleRenderingContext { 16 | public: 17 | CD3DTextBoxConsoleRenderingContext( CD3DFont& font, int x, int y, D3DCOLOR color1, D3DCOLOR color2 ); 18 | 19 | virtual void write( const std::string& message ); 20 | virtual void flush(); 21 | 22 | private: 23 | CD3DFont& mFont; 24 | int mX; 25 | int mY; 26 | D3DCOLOR mColor1, mColor2; 27 | 28 | std::string mBuffer; 29 | }; 30 | 31 | 32 | }; // namespace 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /dingus/dingus/console/FileConsoleRenderingContext.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __FILE_CONSOLE_H 6 | #define __FILE_CONSOLE_H 7 | 8 | #include "Console.h" 9 | #include 10 | 11 | namespace dingus { 12 | 13 | 14 | class CFileConsoleRenderingContext : public IConsoleRenderingContext { 15 | public: 16 | CFileConsoleRenderingContext( const std::string& fileName ); 17 | virtual ~CFileConsoleRenderingContext(); 18 | 19 | virtual void write( const std::string& message ); 20 | 21 | private: 22 | std::ofstream mFile; 23 | }; 24 | 25 | }; // namespace 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /dingus/dingus/console/W32StdConsoleRenderingContext.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __WIN32_CONSOLE_H 6 | #define __WIN32_CONSOLE_H 7 | 8 | #include "Console.h" 9 | 10 | namespace dingus { 11 | 12 | 13 | class CW32StdConsoleRenderingContext : public IConsoleRenderingContext { 14 | public: 15 | CW32StdConsoleRenderingContext(); 16 | virtual ~CW32StdConsoleRenderingContext(); 17 | 18 | void write( const std::string& message ); 19 | 20 | private: 21 | HANDLE mConsoleHandle; 22 | }; 23 | 24 | }; // namespace 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /dingus/dingus/console/WDebugConsoleRenderingContext.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "WDebugConsoleRenderingContext.h" 7 | 8 | using namespace dingus; 9 | 10 | 11 | void CWDebugConsoleRenderingContext::write( const std::string& message ) 12 | { 13 | OutputDebugString( message.c_str() ); 14 | } 15 | -------------------------------------------------------------------------------- /dingus/dingus/console/WDebugConsoleRenderingContext.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __WIN32_DEBUG_CONSOLE_H 6 | #define __WIN32_DEBUG_CONSOLE_H 7 | 8 | #include "Console.h" 9 | 10 | namespace dingus { 11 | 12 | 13 | class CWDebugConsoleRenderingContext : public IConsoleRenderingContext { 14 | public: 15 | CWDebugConsoleRenderingContext() { }; 16 | virtual ~CWDebugConsoleRenderingContext() { }; 17 | 18 | void write( const std::string& message ); 19 | }; 20 | 21 | }; // namespace 22 | 23 | #endif -------------------------------------------------------------------------------- /dingus/dingus/dxutils/D3Dutil.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef D3D_UTIL_H__ 6 | #define D3D_UTIL_H__ 7 | 8 | 9 | namespace dingus { 10 | 11 | /** 12 | * Returns the string for the given D3DFORMAT. 13 | */ 14 | const TCHAR* convertD3DFormatToString( D3DFORMAT format ); 15 | 16 | /** Gives the D3D device a cursor with image and hotspot from hCursor. */ 17 | HRESULT setDeviceCursor( IDirect3DDevice9& device, HCURSOR hCursor ); 18 | 19 | 20 | }; // namespace dingus 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /dingus/dingus/dxutils/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/dingus/dxutils/DirectX.ico -------------------------------------------------------------------------------- /dingus/dingus/dxutils/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/dingus/dxutils/logo.bmp -------------------------------------------------------------------------------- /dingus/dingus/gfx/ModelDescSerializer.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __GFX_MODEL_DESC_SERIALIZER_H 6 | #define __GFX_MODEL_DESC_SERIALIZER_H 7 | 8 | #include "ModelDesc.h" 9 | 10 | 11 | namespace dingus { 12 | 13 | 14 | class CModelDescSerializer { 15 | public: 16 | /// Return true if successful. 17 | static bool loadFromFile( const char* fileName, CModelDesc& desc ); 18 | /// Return true if successful 19 | static bool saveToFile( const char* fileName, const CModelDesc& desc ); 20 | }; 21 | 22 | 23 | }; // namespace 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /dingus/dingus/gfx/VSKeyframeMeshRenderer.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __VS_KEYFRAME_MESH_RENDERER_H 6 | #define __VS_KEYFRAME_MESH_RENDERER_H 7 | 8 | #include "../kernel/Proxies.h" 9 | #include "../renderer/RenderableBuffer.h" 10 | #include "Mesh.h" 11 | 12 | namespace dingus { 13 | 14 | 15 | 16 | class CVSKeyframe2MeshRenderer { 17 | public: 18 | CVSKeyframe2MeshRenderer( CD3DVertexDecl& vDecl ); 19 | 20 | void setKeyframe( CRenderableIndexedBuffer& renderable, CMesh& mesh0, CMesh& mesh1, float t ); 21 | const float* getBlendParam() const { return &mBlendParam; } 22 | 23 | private: 24 | CD3DVertexDecl* mVertexDecl; 25 | float mBlendParam; 26 | }; 27 | 28 | 29 | }; // namespace 30 | 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /dingus/dingus/gfx/geometry/VBChunkHelper.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "VBChunkHelper.h" 7 | 8 | using namespace dingus; 9 | 10 | 11 | 12 | byte* CVBChunkHelper::lock( int count ) 13 | { 14 | // unlock previous chunk? 15 | if( mCurrentChunkLocked ) 16 | unlock(); 17 | 18 | mCurrentChunkLocked = true; 19 | 20 | // lock new chunk 21 | SHARED_CHUNK chunk = mSource->lock( count ); 22 | assert( chunk.get() ); 23 | 24 | // collect chunks for rendering 25 | mChunks.push_back( chunk ); 26 | 27 | return chunk->getData(); 28 | } 29 | -------------------------------------------------------------------------------- /dingus/dingus/gfx/geometry/VBManagerSource.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __VB_CHUNK_SOURCE_H 6 | #define __VB_CHUNK_SOURCE_H 7 | 8 | #include "BufferChunk.h" 9 | #include "DynamicVBManager.h" 10 | 11 | 12 | namespace dingus { 13 | 14 | /** 15 | * Chunk source that provides VB chunks from CDynamicVBManager. 16 | */ 17 | class CVBManagerSource : public IChunkSource { 18 | public: 19 | CVBManagerSource( unsigned int stride ) : mStride(stride) { } 20 | virtual SHARED_CHUNK lock( unsigned int count ) { return CDynamicVBManager::getInstance().allocateChunk( count, mStride ); } 21 | private: 22 | unsigned int mStride; 23 | }; 24 | 25 | }; // namespace 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /dingus/dingus/gfx/particles/ParticleEmitter.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __PARTICLE_EMITTER_H 6 | #define __PARTICLE_EMITTER_H 7 | 8 | #include "ParticleSystem.h" 9 | 10 | namespace dingus { 11 | 12 | template 13 | class CParticleSystem; 14 | 15 | 16 | // -------------------------------------------------------------------------- 17 | 18 | template< typename PARTICLE > 19 | class IParticleEmitter { 20 | public: 21 | typedef CParticleSystem TParticleSystem; 22 | 23 | public: 24 | virtual ~IParticleEmitter() { }; 25 | 26 | virtual void emit( TParticleSystem& target ) = 0; 27 | }; 28 | 29 | 30 | }; // namespace 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /dingus/dingus/gfx/particles/ParticleRenderer.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __PARTICLE_RENDERER_H 6 | #define __PARTICLE_RENDERER_H 7 | 8 | namespace dingus { 9 | 10 | 11 | template< typename PARTICLE > 12 | class IParticleRenderer { 13 | public: 14 | typedef fastvector TParticleVector; 15 | 16 | public: 17 | virtual ~IParticleRenderer() = 0 { }; 18 | 19 | virtual void render( TParticleVector const& particles ) = 0; 20 | }; 21 | 22 | 23 | }; // namespace 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /dingus/dingus/input/InputDevice.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __INPUTDEVICE_H 6 | #define __INPUTDEVICE_H 7 | 8 | #include "InputEvent.h" 9 | 10 | namespace dingus { 11 | 12 | 13 | 14 | class IInputDevice { 15 | public: 16 | virtual ~IInputDevice() = 0 {}; 17 | 18 | virtual CInputEvents poll() = 0; 19 | }; 20 | 21 | 22 | }; // namespace 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /dingus/dingus/input/InputListener.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __INPUT_LISTENER_H 6 | #define __INPUT_LISTENER_H 7 | 8 | namespace dingus { 9 | 10 | class CInputEvent; 11 | 12 | 13 | class IInputListener { 14 | public: 15 | virtual ~IInputListener() =0 {}; 16 | 17 | /** 18 | * Called by context on input event. 19 | */ 20 | virtual void onInputEvent( const CInputEvent& event ) = 0; 21 | 22 | /** 23 | * Called by context at the end of input stage. 24 | */ 25 | virtual void onInputStage() = 0; 26 | }; 27 | 28 | 29 | }; // namespace 30 | 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /dingus/dingus/kernel/RenderStats.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "RenderStats.h" 7 | 8 | using namespace dingus; 9 | 10 | 11 | void CRenderStats::reset() 12 | { 13 | // just set to zero... 14 | memset( this, 0, sizeof(*this) ); 15 | } 16 | -------------------------------------------------------------------------------- /dingus/dingus/lua/LuaHelper.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __LUA_HELPER_H 6 | #define __LUA_HELPER_H 7 | 8 | #include "LuaValue.h" 9 | 10 | #include "../math/Vector3.h" 11 | #include "../math/Quaternion.h" 12 | #include "../math/Matrix4x4.h" 13 | 14 | namespace dingus { 15 | 16 | 17 | class CLuaHelper { 18 | public: 19 | static std::string getString( CLuaValue& val, const char* name ); 20 | static double getNumber( CLuaValue& val, const char* name ); 21 | static SVector3 getVector3( CLuaValue& val, const char* name ); 22 | static SQuaternion getQuaternion( CLuaValue& val, const char* name ); 23 | static void getMatrix3x3( CLuaValue& val, const char* name, SMatrix4x4& m ); 24 | }; 25 | 26 | 27 | }; // namespace 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /dingus/dingus/lua/LuaIterator.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __LUA_ITERATOR_H 6 | #define __LUA_ITERATOR_H 7 | 8 | #include "LuaValue.h" 9 | 10 | 11 | namespace dingus { 12 | 13 | class CLuaArrayIterator : public boost::noncopyable { 14 | public: 15 | CLuaArrayIterator( CLuaValue& val ); 16 | ~CLuaArrayIterator(); 17 | 18 | bool hasNext() const; 19 | 20 | CLuaValue& next(); 21 | 22 | int getKey() const { return mIndex-1; } // key (index) of last fetched elem 23 | 24 | private: 25 | CLuaWrapper* mLua; 26 | CLuaValue* mValue; 27 | CLuaValue mFetchedElem; 28 | int mIndex; 29 | }; 30 | 31 | 32 | }; // namespace 33 | 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /dingus/dingus/lua/LuaWrapper.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "LuaWrapper.h" 7 | 8 | using namespace dingus; 9 | 10 | 11 | 12 | CLuaWrapper::CLuaWrapper( const std::string& basePath ) 13 | : mError( 0 ), mState( NULL ), mBasePath(basePath) 14 | { 15 | mState = lua_open( 0 ); 16 | assert( mState!=NULL ); 17 | } 18 | 19 | CLuaWrapper::~CLuaWrapper() 20 | { 21 | lua_close( mState ); 22 | } 23 | 24 | 25 | const char* CLuaWrapper::getError() const 26 | { 27 | return strerror( mError ); 28 | } 29 | -------------------------------------------------------------------------------- /dingus/dingus/math/Constants.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __MATH_CONSTANTS_H 6 | #define __MATH_CONSTANTS_H 7 | 8 | #include 9 | 10 | 11 | namespace dingus { 12 | 13 | 14 | /** PI constant. */ 15 | const float PY = 3.1415926535897932384626433832795029f; 16 | /** Sqrt(1/2) constant. */ 17 | const float SQRT12 = 0.7071067811865475244008443621048490f; 18 | 19 | 20 | /** Maximum float value. */ 21 | const float DINGUS_MAX_FLOAT = FLT_MAX; 22 | /** Minimum positive float value. */ 23 | const float DINGUS_MIN_FLOAT = FLT_MIN; 24 | 25 | /** Big float value. */ 26 | const float DINGUS_BIG_FLOAT = 1.0e30f; 27 | /** Very small float value. */ 28 | const float DINGUS_SMALL_FLOAT = FLT_EPSILON; 29 | 30 | 31 | }; 32 | 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /dingus/dingus/math/Primitives.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __PRIMITIVES_H 6 | #define __PRIMITIVES_H 7 | 8 | 9 | #include "Vector3.h" 10 | 11 | namespace dingus { 12 | 13 | 14 | struct SRay { 15 | SVector3 origin; 16 | SVector3 direction; 17 | }; 18 | 19 | 20 | struct SSphere { 21 | SVector3 origin; 22 | float radius; 23 | }; 24 | 25 | 26 | }; // namespace 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /dingus/dingus/renderer/EffectParamsNotifier.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "EffectParamsNotifier.h" 7 | 8 | using namespace dingus; 9 | 10 | 11 | CEffectParamsNotifier CEffectParamsNotifier::mSingleInstance; 12 | 13 | 14 | void CEffectParamsNotifier::notify() 15 | { 16 | TListenerVector::iterator it, itEnd = getListeners().end(); 17 | for( it = getListeners().begin(); it != itEnd; ++it ) { 18 | CEffectParams* ep = *it; 19 | assert( ep ); 20 | ep->setEffect( *ep->getEffect(), true ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /dingus/dingus/renderer/Renderable.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "Renderable.h" 7 | 8 | using namespace dingus; 9 | 10 | void CRenderable::beforeRender( CRenderContext& ctx ) 11 | { 12 | TListenerVector::iterator it, itEnd = getListeners().end(); 13 | for( it = getListeners().begin(); it != itEnd; ++it ) { 14 | assert( *it ); 15 | (*it)->beforeRender( *this, ctx ); 16 | } 17 | } 18 | 19 | void CRenderable::afterRender( CRenderContext& ctx ) 20 | { 21 | TListenerVector::iterator it, itEnd = getListeners().end(); 22 | for( it = getListeners().begin(); it != itEnd; ++it ) { 23 | assert( *it ); 24 | (*it)->afterRender( *this, ctx ); 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /dingus/dingus/resource/MeshCreator.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __MESH_CREATOR_H 6 | #define __MESH_CREATOR_H 7 | 8 | #include "../gfx/Mesh.h" 9 | 10 | 11 | namespace dingus { 12 | 13 | 14 | class IMeshCreator : public CRefCounted { 15 | public: 16 | typedef DingusSmartPtr TSharedPtr; 17 | public: 18 | virtual ~IMeshCreator() = 0 { } 19 | virtual void createMesh( CMesh& mesh ) = 0; 20 | }; 21 | 22 | 23 | 24 | }; // namespace 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /dingus/dingus/resource/MeshSerializer.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __GFX_MESH_SERIALIZER_H 6 | #define __GFX_MESH_SERIALIZER_H 7 | 8 | #include "../gfx/Mesh.h" 9 | #include "../gfx/skeleton/SkeletonInfo.h" 10 | 11 | 12 | namespace dingus { 13 | 14 | 15 | class CMeshSerializer { 16 | public: 17 | /// Return true if successful. 18 | static bool loadMeshFromFile( const char* fileName, CMesh& mesh ); 19 | ///// Return true if successful 20 | //static bool saveMeshToFile( const char* fileName, const CMesh& mesh ); 21 | 22 | static CSkeletonInfo* loadSkelInfoFromFile( const char* fileName ); 23 | }; 24 | 25 | 26 | }; // namespace 27 | 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /dingus/dingus/resource/ResourceBundle.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "ResourceBundle.h" 7 | 8 | using namespace dingus; 9 | 10 | 11 | CConsoleChannel& IResourceBundle::CONSOLE = CConsole::getChannel( "resource" ); 12 | 13 | -------------------------------------------------------------------------------- /dingus/dingus/resource/ResourceBundle.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __RESOURCE_BUNDLE_H 6 | #define __RESOURCE_BUNDLE_H 7 | 8 | #include "ResourceId.h" 9 | #include "../console/Console.h" 10 | 11 | namespace dingus { 12 | 13 | class IResourceBundle { 14 | public: 15 | static CConsoleChannel& CONSOLE; 16 | public: 17 | virtual ~IResourceBundle() = 0 {}; 18 | }; 19 | 20 | 21 | }; // namespace 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /dingus/dingus/resource/SkeletonInfoBundle.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "SkeletonInfoBundle.h" 7 | #include "MeshSerializer.h" 8 | #include "../utils/Errors.h" 9 | 10 | using namespace dingus; 11 | 12 | CSkeletonInfoBundle::CSkeletonInfoBundle() 13 | { 14 | addExtension( ".dmesh" ); 15 | } 16 | 17 | CSkeletonInfo* CSkeletonInfoBundle::loadResourceById( const CResourceId& id, const CResourceId& fullName ) 18 | { 19 | CSkeletonInfo* skelInfo = CMeshSerializer::loadSkelInfoFromFile( fullName.getUniqueName().c_str() ); 20 | if( !skelInfo ) { 21 | return NULL; 22 | } 23 | assert( skelInfo ); 24 | CONSOLE.write( "skeleton loaded '" + id.getUniqueName() + "'" ); 25 | return skelInfo; 26 | } 27 | -------------------------------------------------------------------------------- /dingus/dingus/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #include "stdafx.h" 6 | 7 | // for precompiled headers 8 | -------------------------------------------------------------------------------- /dingus/dingus/utils/AssertHelper.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __ASSERT_HELP_H 6 | #define __ASSERT_HELP_H 7 | 8 | #define ASSERT_MSG( condition, message ) assert( (condition) || !message ) 9 | #define ASSERT_FAIL_MSG( message ) assert( !message ) 10 | #define ASSERT_NOT_IMPL ASSERT_FAIL_MSG("not implemented") 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /dingus/dingus/utils/Errors.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "Errors.h" 7 | 8 | using namespace dingus; 9 | 10 | EBaseError::EBaseError( const std::string& msg, const char* fileName, int lineNumber ) 11 | : std::runtime_error( msg ), mFileName( fileName ), mLineNumber( lineNumber ) 12 | { 13 | char buf[100]; 14 | itoa( lineNumber, buf, 10 ); 15 | mWhereMsg = msg + ' ' + fileName + ':' + buf; 16 | }; 17 | -------------------------------------------------------------------------------- /dingus/dingus/utils/FixedRateProcess.cpp: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | #include "stdafx.h" 5 | 6 | #include "FixedRateProcess.h" 7 | 8 | using namespace dingus; 9 | 10 | 11 | void CFixedRateProcess::perform() 12 | { 13 | float t = CSystemTimer::getInstance().getDeltaTimeS() + mTimeSinceLastUpdate; 14 | int count = 0; 15 | while( t >= mPerformDT ) { 16 | if( count < mMaxPerformsAtOnce ) 17 | performProcess(); 18 | t -= mPerformDT; 19 | ++count; 20 | } 21 | mTimeSinceLastUpdate = t; 22 | } 23 | -------------------------------------------------------------------------------- /dingus/dingus/utils/MemUtil.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------- 2 | // Dingus project - a collection of subsystems for game/graphics applications 3 | // -------------------------------------------------------------------------- 4 | 5 | #ifndef __MEM_UTIL_H 6 | #define __MEM_UTIL_H 7 | 8 | namespace dingus { 9 | 10 | /// If o, delete o. Assign to NULL. 11 | template< typename T > void safeDelete( T& o ) { 12 | if( o ) delete o; 13 | o = 0; 14 | }; 15 | /// If o, delete[] o. Assign to NULL. 16 | template< typename T > void safeDeleteArray( T& o ) { 17 | if( o ) delete[] o; 18 | o = 0; 19 | }; 20 | /// If o, o->Release(). Assign to NULL. 21 | template< typename T > void safeRelease( T& o ) { 22 | if( o ) o->Release(); 23 | o = 0; 24 | }; 25 | 26 | 27 | }; // namespace dingus 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /dingus/doc/README.md: -------------------------------------------------------------------------------- 1 | ## File Formats 2 | 3 | * [Mesh File Format](https://github.com/aras-p/dingus/blob/master/dingus/doc/fileformats/meshFileFormat.txt) 4 | * [Animation File Format](https://github.com/aras-p/dingus/blob/master/dingus/doc/fileformats/AnimFileFormat.txt) 5 | -------------------------------------------------------------------------------- /dingus/lib/lua.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/lib/lua.lib -------------------------------------------------------------------------------- /dingus/tools/3dsMax/IGame/readme-igame.txt: -------------------------------------------------------------------------------- 1 | 3dsMax's IGame library should be here (I'm not sure if I have rights to 2 | include it along with my sourcecode). 3 | 4 | I used version 1.122. 5 | 6 | Layout is as follows: this directory contains: 7 | 8 | 3dsmax5/ 9 | include/ 10 | *.h 11 | IGame.dll 12 | IGame.lib 13 | 3dsmax6/ 14 | include/ 15 | *.h 16 | IGame.dll 17 | IGame.lib 18 | IGameProp.xml 19 | readme.txt -------------------------------------------------------------------------------- /dingus/tools/3dsMax/changes.txt: -------------------------------------------------------------------------------- 1 | 3dsMax tools changelog 2 | 3 | 051026: mesh exporter 4 | If normals are not exported, then vertices are properly welded 5 | 051016: mesh exporter 6 | Renamed IMMeshExport.dle to DingusMeshExport.dle 7 | 051005: mesh exporter 8 | Ability to turn debug output on/off via dialog -------------------------------------------------------------------------------- /dingus/tools/3dsMax/exportAnim/IGameExporter.def: -------------------------------------------------------------------------------- 1 | LIBRARY IMAnimExport 2 | EXPORTS 3 | LibDescription @1 4 | LibNumberClasses @2 5 | LibClassDesc @3 6 | LibVersion @4 7 | CanAutoDefer @5 8 | 9 | SECTIONS 10 | .data READ WRITE 11 | -------------------------------------------------------------------------------- /dingus/tools/3dsMax/exportAnim/IGameExporter.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "IGameExporter"=.\IGameExporter.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /dingus/tools/3dsMax/exportAnim/globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include "Max.h" 5 | #include "resource.h" 6 | #include "istdplug.h" 7 | #include "iparamb2.h" 8 | #include "iparamm2.h" 9 | 10 | extern TCHAR *GetString(int id); 11 | 12 | extern HINSTANCE hInstance; 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /dingus/tools/3dsMax/exportMesh/IGameExporter.def: -------------------------------------------------------------------------------- 1 | LIBRARY DingusMeshExport 2 | EXPORTS 3 | LibDescription @1 4 | LibNumberClasses @2 5 | LibClassDesc @3 6 | LibVersion @4 7 | CanAutoDefer @5 8 | 9 | SECTIONS 10 | .data READ WRITE 11 | -------------------------------------------------------------------------------- /dingus/tools/3dsMax/exportMesh/IGameExporter.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "IGameExporter"=.\IGameExporter.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /dingus/tools/3dsMax/exportMesh/globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include "Max.h" 5 | #include "resource.h" 6 | #include "istdplug.h" 7 | #include "iparamb2.h" 8 | #include "iparamm2.h" 9 | 10 | extern TCHAR *GetString(int id); 11 | 12 | extern HINSTANCE hInstance; 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /dingus/tools/3dsMax/install.txt: -------------------------------------------------------------------------------- 1 | Installing exporters for 3dsMax: 2 | 1. copy IGame/3dsmax?/IGame.dll to {3dsMaxDir} 3 | 2. copy IGame/IGameProp.xml to {3dsMaxDir}/plugcfg 4 | 3. copy exporter's *.dle file to {3dsMaxDir}/stdplugs 5 | -------------------------------------------------------------------------------- /dingus/tools/AmbOccTool/Tool.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 8.00 2 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tool", "Tool.vcproj", "{68CD734D-F828-44DD-96AD-DC49458546FF}" 3 | ProjectSection(ProjectDependencies) = postProject 4 | EndProjectSection 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfiguration) = preSolution 8 | Debug = Debug 9 | Release = Release 10 | EndGlobalSection 11 | GlobalSection(ProjectConfiguration) = postSolution 12 | {68CD734D-F828-44DD-96AD-DC49458546FF}.Debug.ActiveCfg = Debug|Win32 13 | {68CD734D-F828-44DD-96AD-DC49458546FF}.Debug.Build.0 = Debug|Win32 14 | {68CD734D-F828-44DD-96AD-DC49458546FF}.Release.ActiveCfg = Release|Win32 15 | {68CD734D-F828-44DD-96AD-DC49458546FF}.Release.Build.0 = Release|Win32 16 | EndGlobalSection 17 | GlobalSection(ExtensibilityGlobals) = postSolution 18 | EndGlobalSection 19 | GlobalSection(ExtensibilityAddIns) = postSolution 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /dingus/tools/AmbOccTool/changes.txt: -------------------------------------------------------------------------------- 1 | Changelog of Ambient Occlusion tool 2 | 3 | 051016: Added per-vertex AO option 4 | 050705: Removed automatic UV atlas generation. Not practical with UVAtlas 5 | on hi-poly meshes, better do in art package before subdivision. 6 | Added dependency to NormalMapperFork source in adjacent directory. 7 | Oh well, the tool was intended to use with NormalMapper anyway. 8 | 050704: Changed to June 2005 SDK. 9 | Adding automatic UV atlas generation for meshes without atlas. 10 | -------------------------------------------------------------------------------- /dingus/tools/AmbOccTool/notes.txt: -------------------------------------------------------------------------------- 1 | Misc notes 2 | 3 | 050704: times, -m Garg2Cage.dmesh -n Garg2CageN.tga 4 | Jun2005: 2.64s (2nd order) 5 | Jun2005: 4.14s (3rd order) 6 | -------------------------------------------------------------------------------- /dingus/tools/AmbOccTool/readme.txt: -------------------------------------------------------------------------------- 1 | Ambient occlusion calculation on the GPU tool 2 | 3 | Usage: AmbOccTool 4 | -m Input mesh file 5 | -n Object space normal map of the mesh (optional) 6 | -x Output texture width 7 | -y Output texture height 8 | -s If given - swap Y/Z in the input normal map 9 | -t If given - output TGA instead of DDS 10 | -v Compute AO per vertex 11 | 12 | Input mesh must contain unique UV parametrization in the first texture 13 | channel, or "per vertex" option must be used. 14 | 15 | Supplying input normal map, output width/height or per-vertex flag is 16 | required. 17 | 18 | * If input normal map is given: output is normal map (probably Y/Z swapped) 19 | with AO placed in alpha channel. 20 | * If no input normal map is given: output is grayscale AO with opaque alpha 21 | channel. 22 | * If "per vertex" flag is given: output is binary file, with 1 byte per input 23 | mesh vertex; bytes encode AO. -------------------------------------------------------------------------------- /dingus/tools/AmbOccTool/src/args.h: -------------------------------------------------------------------------------- 1 | #ifndef __ARGS_H 2 | #define __ARGS_H 3 | 4 | #include 5 | #include 6 | 7 | 8 | class CCmdlineArgs { 9 | public: 10 | CCmdlineArgs( int argc, const char** argv ); 11 | 12 | int find( const char* name ) const; 13 | bool contains( const char* name ) const; 14 | 15 | const char* getString( const char* name ) const; 16 | int getInt( int def, const char* name ) const; 17 | float getFloat( float def, const char* name ) const; 18 | 19 | private: 20 | typedef std::vector TStringVector; 21 | private: 22 | TStringVector mArgs; 23 | }; 24 | 25 | 26 | inline bool CCmdlineArgs::contains( const char* name ) const 27 | { 28 | return (find(name) >= 0); 29 | } 30 | 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /dingus/tools/AmbOccTool/src/d3d.h: -------------------------------------------------------------------------------- 1 | #ifndef __D3D_H 2 | #define __D3D_H 3 | 4 | // windows 5 | #define _WIN32_WINNT 0x0500 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #include 13 | 14 | namespace boost { 15 | inline void intrusive_ptr_add_ref( IUnknown* p ) { p->AddRef(); } 16 | inline void intrusive_ptr_release( IUnknown* p ) { p->Release(); } 17 | } 18 | 19 | typedef boost::intrusive_ptr TD3DPtr; 20 | typedef boost::intrusive_ptr TD3DDevicePtr; 21 | 22 | 23 | extern TD3DPtr gD3D; 24 | extern TD3DDevicePtr gD3DDevice; 25 | 26 | 27 | void initD3D(); 28 | void closeD3D(); 29 | 30 | 31 | 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /dingus/tools/AtlasCreationToolFork/AtlasCreationTool.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "AtlasCreationTool"=.\AtlasCreationTool.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /dingus/tools/AtlasCreationToolFork/changes.txt: -------------------------------------------------------------------------------- 1 | Changelog of nVidia's AtlasCreationTool fork 2 | 3 | 050627: Removed dependency on D3D sample framework. 4 | Support non-pow-2 input textures with pretty good packing. This messes 5 | up mipmaps though. 6 | -------------------------------------------------------------------------------- /dingus/tools/AtlasCreationToolFork/readme.txt: -------------------------------------------------------------------------------- 1 | This is a fork of nVidia's AtlasCreationTool. 2 | Original Atlas Creation Tool can be found at http://developer.nvidia.com/object/texture_atlas_tools.html 3 | Atlas Creation Tool is (C) NVIDIA Corporation 4 | 5 | This fork contains only the Atlas Creation Tool portion and doesn't include 6 | the atlas viewer nor other stuff. 7 | 8 | Currently the fork is based on 2.0 (1.0.0826.1700) version. 9 | 10 | Changes are: 11 | 12 | * Supports non-pow-2 input textures. Now, it packs them much better than with 13 | original packer, but this isn't that good for mipmaps. However, I use it 14 | to pack arbitrary non-pow-2 (for UI) images into atlases, and mipmaps 15 | aren't an issue for my case. 16 | 17 | * Removed dependency on D3D sample framework. Now it's really just a simple 18 | command line application. 19 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/changes.txt: -------------------------------------------------------------------------------- 1 | MeshTexer changelog 2 | 3 | 050629: Removed gloss generation. Preview light now is in view space 4 | (i.e. attached to camera). Now really can save to DDS or PNG. 5 | 6 | 050604: MeshTexer added to repository. This tool was used for in.out.side 7 | demo to generate textures on arbitrary models from tileable textures 8 | by projecting them. The initial release could generate diffuse and 9 | gloss map into one texture, but that was never used; so I'll throw 10 | the gloss part out really soon. 11 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/data/fx/checker.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | float4x4 mWVP; 5 | 6 | 7 | texture tChecker; 8 | sampler2D smpChecker = sampler_state { 9 | Texture = (tChecker); 10 | MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; 11 | AddressU = Wrap; AddressV = Wrap; 12 | }; 13 | 14 | 15 | SPosTex vsMain( SPosTex i ) { 16 | SPosTex o; 17 | 18 | o.pos = mul( i.pos, mWVP ); 19 | o.uv = i.uv; 20 | 21 | return o; 22 | } 23 | 24 | half4 psMain( SPosTex i ) : COLOR { 25 | return tex2D( smpChecker, i.uv ); 26 | } 27 | 28 | 29 | technique tec11 30 | { 31 | pass P0 { 32 | VertexShader = compile vs_1_1 vsMain(); 33 | PixelShader = compile ps_1_1 psMain(); 34 | } 35 | RESTORE_PASS 36 | } 37 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 { 6 | pass P0 { 7 | VertexShader = NULL; 8 | PixelShader = NULL; 9 | AlphaBlendEnable = False; 10 | CullMode = ; 11 | FillMode = ; 12 | ZFunc = LessEqual; 13 | } 14 | pass PLast { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/data/fx/lib/meshtexer.fx: -------------------------------------------------------------------------------- 1 | #ifndef __MESH_TEXER_FX 2 | #define __MESH_TEXER_FX 3 | 4 | #include "shared.fx" 5 | 6 | 7 | half3 gMapTexture( float3 pos, float scale, sampler2D smp, half3 scales ) 8 | { 9 | half3 texX = tex2D( smp, float2(pos.y,pos.z)*scale ).rgb; 10 | half3 texY = tex2D( smp, float2(pos.x,pos.z)*scale ).rgb; 11 | half3 texZ = tex2D( smp, float2(pos.x,pos.y)*scale ).rgb; 12 | return texX * scales.x + texY * scales.y + texZ * scales.z; 13 | } 14 | 15 | half3 gMapDiffuse( float3 pos, sampler2D smp, half3 scales ) 16 | { 17 | return gMapTexture( pos, fTexerScale, smp, scales ); 18 | } 19 | 20 | 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/data/tex/Checker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/tools/MeshTexer/data/tex/Checker.png -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/data/tex/guiskin.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/tools/MeshTexer/data/tex/guiskin.dds -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/readme.txt: -------------------------------------------------------------------------------- 1 | MeshTexer is a tool to generate seamless textures onto arbitrary 3D models. 2 | Given a mesh with unique UV mapping and a tileable 2D texture, it generates 3 | a texture that nicely "wraps around" this 3D model. 4 | 5 | MeshTexer is part of 'dingus' 3D engine and tools, http://dingus.berlios.de 6 | 7 | The complete documentation is online: 8 | http://dingus.berlios.de/index.php?n=Main.MeshTexer 9 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/tools/MeshTexer/src/DirectX.ico -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | /** 7 | * Demo application. 8 | */ 9 | class CDemo : public CSystem, public IInputListener { 10 | public: 11 | CDemo(); 12 | 13 | // IDingusApplication 14 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 15 | 16 | virtual void initialize( IDingusAppContext& appContext ); 17 | virtual void shutdown(); 18 | virtual bool shouldFinish(); 19 | virtual bool shouldShowStats(); 20 | virtual void perform(); 21 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 22 | 23 | // IInputListener 24 | virtual void onInputEvent( const CInputEvent& event ); 25 | virtual void onInputStage(); 26 | }; 27 | 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/demo/DemoResources.h: -------------------------------------------------------------------------------- 1 | #ifndef __MYDEMO_RES_H 2 | #define __MYDEMO_RES_H 3 | 4 | #include 5 | 6 | // ------------------------------------ 7 | // Shared resources 8 | 9 | #define RID_IB_QUADSTRIP "ibqstrip" 10 | #define RID_IB_QUADS "ibquads" 11 | 12 | 13 | // ------------------------------------ 14 | 15 | 16 | extern SVector4 gScreenFixUVs; 17 | 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/tools/MeshTexer/src/logo.bmp -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | // other stuff 12 | #include 13 | #include 14 | #include 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "Globals.h" 3 | 4 | CRenderContext* G_RENDERCTX = NULL; 5 | CInputContext* G_INPUTCTX = NULL; 6 | 7 | CConsoleChannel& CONS = CConsole::getChannel("app"); 8 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/system/Globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | using namespace dingus; 19 | 20 | extern CRenderContext* G_RENDERCTX; 21 | extern CInputContext* G_INPUTCTX; 22 | 23 | extern CConsoleChannel& CONS; 24 | 25 | 26 | const int GUI_X = 640; 27 | const int GUI_Y = 480; 28 | 29 | 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /dingus/tools/MeshTexer/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | #include 6 | 7 | extern std::string gErrorMsg; 8 | 9 | 10 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, INT ) 11 | { 12 | try { 13 | CDemo* demo = new CDemo(); 14 | CDingusSystem* system = new CDingusSystem( *demo ); 15 | if( SUCCEEDED( system->create( hInst, false ) ) ) 16 | system->run(); 17 | delete demo; 18 | delete system; 19 | } catch( std::exception& e ) { 20 | std::string willExit = "\n\nThe application will now exit."; 21 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK ); 22 | return 0; 23 | } 24 | if( !gErrorMsg.empty() ) { 25 | std::string willExit = "\n\nThe application will now exit."; 26 | MessageBox( 0, (gErrorMsg+willExit).c_str(), "Initialization error", MB_OK ); 27 | } 28 | return 0; 29 | } 30 | -------------------------------------------------------------------------------- /dingus/tools/NormalMapperFork/AtiTriBoxMoller.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/tools/NormalMapperFork/AtiTriBoxMoller.cpp -------------------------------------------------------------------------------- /dingus/tools/NormalMapperFork/NormalMapper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/tools/NormalMapperFork/NormalMapper.cpp -------------------------------------------------------------------------------- /dingus/tools/NormalMapperFork/NormalMapper.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "NormalMapper"=.\NormalMapper.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /dingus/tools/NormalMapperFork/NormalMapper.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/tools/NormalMapperFork/NormalMapper.rc -------------------------------------------------------------------------------- /dingus/tools/NormalMapperFork/args.h: -------------------------------------------------------------------------------- 1 | #ifndef __ARGS_H 2 | #define __ARGS_H 3 | 4 | class CmdlineArgs { 5 | public: 6 | CmdlineArgs( int argc, char** argv ); 7 | ~CmdlineArgs(); 8 | 9 | /// Returns index or -1 10 | int find( const char* name ) const; 11 | /// Returns true or false 12 | bool contains( const char* name ) const; 13 | 14 | const char* getString( const char* name ) const; 15 | int getInt( int def, const char* name ) const; 16 | double getFloat( double def, const char* name ) const; 17 | 18 | private: 19 | int mCount; 20 | const char** mArgs; 21 | }; 22 | 23 | 24 | inline bool CmdlineArgs::contains( const char* name ) const 25 | { 26 | return (find(name) >= 0); 27 | } 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /dingus/tools/NormalMapperFork/changes.txt: -------------------------------------------------------------------------------- 1 | Changelog of ATI's NormalMapper fork 2 | 3 | 050705: Texture recasting from hi-poly model almost working! 4 | 050610: Remade cmdline arguments from weird one-letter system to "normal" one. 5 | Hey, it was running out of available letters! 6 | 050513: Option 'J' swaps Y and Z channels in resulting normal map. 7 | 050513: Print computation times. 8 | 050513: Flag leaf nodes in octree; no need for big checks during traversal. 9 | -------------------------------------------------------------------------------- /dingus/tools/NormalMapperFork/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/dingus/tools/NormalMapperFork/logo.ico -------------------------------------------------------------------------------- /dingus/tools/changes.txt: -------------------------------------------------------------------------------- 1 | Tools changelog 2 | 3 | 050629: MeshTexer somewhat polished, see article at dingus.berlios.de 4 | 050627: AtlasCreationTool fork added to repository. 5 | 050609: NormalMapper fork added to repository. 6 | 050604: MeshTexer added to repository. 7 | -------------------------------------------------------------------------------- /ic2005/data/fx/casterSimple.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | SPos vsMain( SPos i ) { 5 | SPos o; 6 | o.pos = mul( i.pos, mViewProj ); 7 | return o; 8 | } 9 | 10 | half4 psMain( SPos i ) : COLOR { 11 | return 0.6; 12 | } 13 | 14 | 15 | technique tec11 16 | { 17 | pass P0 { 18 | VertexShader = compile vs_1_1 vsMain(); 19 | PixelShader = compile ps_1_1 psMain(); 20 | } 21 | RESTORE_PASS 22 | } 23 | -------------------------------------------------------------------------------- /ic2005/data/fx/casterSimpleA.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | 5 | SPosCol vsMain( SPosCol i ) { 6 | SPosCol o; 7 | o.pos = mul( i.pos, mViewProj ); 8 | o.color.xyz = 0.6; 9 | o.color.w = i.color.w; 10 | return o; 11 | } 12 | 13 | half4 psMain( SPosCol i ) : COLOR { 14 | return i.color; 15 | } 16 | 17 | 18 | technique tec11 19 | { 20 | pass P0 { 21 | VertexShader = compile vs_1_1 vsMain(); 22 | PixelShader = compile ps_1_1 psMain(); 23 | AlphaBlendEnable = True; 24 | SrcBlend = SrcAlpha; 25 | DestBlend = InvSrcAlpha; 26 | } 27 | RESTORE_PASS 28 | } 29 | -------------------------------------------------------------------------------- /ic2005/data/fx/lib/commonWalls.fx: -------------------------------------------------------------------------------- 1 | #ifndef __COMMON_WALLS_FX 2 | #define __COMMON_WALLS_FX 3 | 4 | #include "shared.fx" 5 | 6 | float4 gWallLightFull( float3 wpos, float3 wn, float3 lpos, float diff, float amb ) 7 | { 8 | float3 tolight = normalize( lpos - wpos ); 9 | float diffuse = max( 0.0, dot( tolight, wn ) ); 10 | float col = diffuse * diff + amb; 11 | return col; 12 | } 13 | 14 | float4 gWallLight( float3 wpos, float3 wn, float3 lpos ) 15 | { 16 | return gWallLightFull( wpos, wn, lpos, 0.70, 0.30 ); 17 | } 18 | 19 | #define DEF_WALL_DIFF 0.60 20 | #define DEF_WALL_AMB 0.20 21 | 22 | half gWallLightPS( half3 wn, half3 tol, half diff, half amb ) 23 | { 24 | half diffuse = saturate( dot( tol, wn ) ); 25 | half col = diffuse * diff + amb; 26 | return col; 27 | } 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ic2005/data/fx/lib/defines.fx: -------------------------------------------------------------------------------- 1 | #ifndef __DEFINES_FX 2 | #define __DEFINES_FX 3 | 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /ic2005/data/fx/lib/dof.fx: -------------------------------------------------------------------------------- 1 | #ifndef __DOF_FX 2 | #define __DOF_FX 3 | 4 | #include "shared.fx" 5 | 6 | /** 7 | * Given world space position, returns 8 | * view space depth. 9 | */ 10 | float gCameraDepth( float3 wpos ) 11 | { 12 | float3 vpos = mul( float4(wpos,1), mView ); 13 | return vpos.z; 14 | } 15 | 16 | 17 | /** 18 | * Given object space position and world*view matrix, returns 19 | * view space depth. 20 | */ 21 | float gCameraDepth( float4 pos, float4x4 viewProj ) 22 | { 23 | float3 vpos = mul( pos, viewProj ); 24 | return vpos.z; 25 | } 26 | 27 | 28 | /** 29 | * Given view space depth, compute bluriness 30 | * factor from DOF parameters. 31 | */ 32 | half gBluriness( half depth ) 33 | { 34 | half fromFocal = depth - vDOF.x; 35 | if( fromFocal < 0 ) 36 | fromFocal *= 2; 37 | return abs( fromFocal ) * vDOF.y; 38 | } 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /ic2005/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 { 6 | pass P0 { 7 | VertexShader = NULL; 8 | PixelShader = NULL; 9 | AlphaBlendEnable = False; 10 | CullMode = ; 11 | ZFunc = LessEqual; 12 | } 13 | pass PLast { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ic2005/data/fx/normalMap.fx: -------------------------------------------------------------------------------- 1 | #include "normalMaps.fx" 2 | -------------------------------------------------------------------------------- /ic2005/data/fx/normalMapL.fx: -------------------------------------------------------------------------------- 1 | #define NM_LMAP 2 | #include "normalMaps.fx" 3 | -------------------------------------------------------------------------------- /ic2005/data/fx/skinCaster.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | #include "lib/skinning.fx" 4 | 5 | int iBones; 6 | 7 | struct SInput0 { 8 | float4 pos : POSITION; 9 | float4 indices : BLENDINDICES; 10 | }; 11 | 12 | SPosCol vsMain0( SInput0 i ) { 13 | SPosCol o; 14 | o.pos.w = 1; 15 | gSkinningPos( i.pos, i.indices, o.pos.xyz ); 16 | o.color.ra = 0; 17 | o.color.g = o.pos.y / 3.0; 18 | o.color.b = o.pos.y / 8.0; 19 | o.pos = mul( o.pos, mViewProj ); 20 | return o; 21 | } 22 | 23 | half4 psMain( SPosCol i ) : COLOR { 24 | return i.color; 25 | } 26 | 27 | 28 | technique tec11 29 | { 30 | pass P0 { 31 | VertexShader = compile vs_1_1 vsMain0(); 32 | PixelShader = compile ps_1_1 psMain(); 33 | } 34 | RESTORE_PASS 35 | } 36 | -------------------------------------------------------------------------------- /ic2005/data/fx/skinCasterSimple.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | #include "lib/skinning.fx" 4 | 5 | int iBones; 6 | 7 | struct SInput0 { 8 | float4 pos : POSITION; 9 | float4 indices : BLENDINDICES; 10 | }; 11 | 12 | SPos vsMain0( SInput0 i ) { 13 | SPos o; 14 | o.pos.w = 1; 15 | gSkinningPos( i.pos, i.indices, o.pos.xyz ); 16 | o.pos = mul( o.pos, mViewProj ); 17 | return o; 18 | } 19 | 20 | half4 psMain( SPosCol i ) : COLOR { 21 | return 0.7; 22 | } 23 | 24 | 25 | technique tec11 26 | { 27 | pass P0 { 28 | VertexShader = compile vs_1_1 vsMain0(); 29 | PixelShader = compile ps_1_1 psMain(); 30 | } 31 | RESTORE_PASS 32 | } 33 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_Dn.fx: -------------------------------------------------------------------------------- 1 | 2 | #define WALL_NCOL 3 | 4 | #include "walls.fx" 5 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_DnR.fx: -------------------------------------------------------------------------------- 1 | 2 | #define WALL_NCOL 3 | 4 | #if D_REFLECTIONS==1 5 | #define WALL_REFL 6 | #endif 7 | 8 | #include "walls.fx" 9 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_DnS.fx: -------------------------------------------------------------------------------- 1 | 2 | #define WALL_NCOL 3 | 4 | #if D_SHADOWS==1 5 | #define WALL_SHADOW 6 | #endif 7 | 8 | #include "walls.fx" 9 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_DnSA.fx: -------------------------------------------------------------------------------- 1 | 2 | #define WALL_NCOL 3 | 4 | #if D_SHADOWS==1 5 | #define WALL_SHADOW 6 | #endif 7 | 8 | #define WALL_ALPHA 9 | 10 | #define WALL_AMB 0.35 11 | 12 | #include "walls.fx" 13 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_DnSR.fx: -------------------------------------------------------------------------------- 1 | 2 | #define WALL_NCOL 3 | 4 | #if D_SHADOWS==1 5 | #define WALL_SHADOW 6 | #endif 7 | 8 | #if D_REFLECTIONS==1 9 | #define WALL_REFL 10 | #endif 11 | 12 | #include "walls.fx" 13 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_St.fx: -------------------------------------------------------------------------------- 1 | 2 | #include "walls.fx" 3 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_StR.fx: -------------------------------------------------------------------------------- 1 | 2 | #if D_REFLECTIONS==1 3 | #define WALL_REFL 4 | #endif 5 | 6 | #include "walls.fx" 7 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_StS.fx: -------------------------------------------------------------------------------- 1 | 2 | #if D_SHADOWS==1 3 | #define WALL_SHADOW 4 | #endif 5 | 6 | #include "walls.fx" 7 | -------------------------------------------------------------------------------- /ic2005/data/fx/wall_StS2R.fx: -------------------------------------------------------------------------------- 1 | 2 | #if D_SHADOWS==1 3 | #define WALL_SHADOW 4 | #if D_REFLECTIONS==1 5 | #define WALL_SH2REFL 6 | #endif 7 | #endif 8 | 9 | #if D_REFLECTIONS==1 10 | #define WALL_REFL 11 | #endif 12 | 13 | #include "walls.fx" 14 | -------------------------------------------------------------------------------- /ic2005/data/model/caster/Bicas.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Bicas' 2 | groups = { 3 | { 4 | fx = 'skinCaster', pri = 0, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /ic2005/data/model/castersimple/Bed.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Bed' 2 | groups = { 3 | { 4 | fx = 'casterSimple', pri = 0, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /ic2005/data/model/castersimple/BedPieces.dmdl: -------------------------------------------------------------------------------- 1 | name = 'BedPieces' 2 | groups = { 3 | { 4 | fx = 'skinCasterSimple', pri = 0, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/AttackFx1.dmdl: -------------------------------------------------------------------------------- 1 | name = 'AttackFx1' 2 | groups = { 3 | { 4 | fx = 'electricityAtk', pri = 2, 5 | params = { 6 | { 'tex', 'tEnv1', 'ElEnv1' }, 7 | { 'tex', 'tEnv2', 'ElEnv2' }, 8 | { 'tex', 'tScroll', 'ElScroll' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/AttackFx1Int.dmdl: -------------------------------------------------------------------------------- 1 | name = 'AttackFx1' 2 | groups = { 3 | { 4 | fx = 'electricityAtk2', pri = 2, 5 | params = { 6 | { 'tex', 'tEnv1', 'ElEnv1' }, 7 | { 'tex', 'tEnv2', 'ElEnv2' }, 8 | { 'tex', 'tScroll', 'ElScroll' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/AttackFx2_1.dmdl: -------------------------------------------------------------------------------- 1 | name = 'AttackFx2_1' 2 | groups = { 3 | { 4 | fx = 'attack2', pri = 2, 5 | params = { 6 | { 'tex', 'tBase', 'TiledNoise' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/AttackFx2_2.dmdl: -------------------------------------------------------------------------------- 1 | name = 'AttackFx2_2' 2 | groups = { 3 | { 4 | fx = 'attack2', pri = 2, 5 | params = { 6 | { 'tex', 'tBase', 'TiledNoise' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/AttackFx3.dmdl: -------------------------------------------------------------------------------- 1 | name = 'AttackFx2' 2 | groups = { 3 | { 4 | fx = 'attack2', pri = 2, 5 | params = { 6 | { 'tex', 'tBase', 'TiledNoise' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/Bed.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Bed' 2 | groups = { 3 | { 4 | fx = 'bed', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/BedPieces.dmdl: -------------------------------------------------------------------------------- 1 | name = 'BedPieces' 2 | groups = { 3 | { 4 | fx = 'bedanim', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/Bicas.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Bicas' 2 | groups = { 3 | { 4 | fx = 'skin', pri = 0, 5 | params = { 6 | { 'tex', 'tNormalAO', 'BicasLo.NMF.nao' }, 7 | { 'tex', 'tBase', 'BicasTex' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/Electricity.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Electricity' 2 | groups = { 3 | { 4 | fx = 'electricity', pri = 2, 5 | params = { 6 | { 'tex', 'tEnv1', 'ElEnv1' }, 7 | { 'tex', 'tEnv2', 'ElEnv2' }, 8 | { 'tex', 'tScroll', 'ElScroll' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/FadeInMesh.dmdl: -------------------------------------------------------------------------------- 1 | name = 'FadeInMesh' 2 | groups = { 3 | { 4 | fx = 'fadeinmesh', pri = 1, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/Room2Bottom.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Room2Bottom' 2 | groups = { 3 | { 4 | fx = 'wall_StS', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/Room2Top.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Room2Top' 2 | groups = { 3 | { 4 | fx = 'wall_St', pri = 0, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/RoomCeil.dmdl: -------------------------------------------------------------------------------- 1 | name = 'RoomCeil' 2 | groups = { 3 | { 4 | fx = 'wall_StR', pri = 0, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/RoomFloor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'RoomFloor' 2 | groups = { 3 | { 4 | fx = 'wall_StS2R', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | { 'stex', 'tShadow2', 'shadow2S' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/RoomFloorFr.dmdl: -------------------------------------------------------------------------------- 1 | name = 'RoomFloorFr' 2 | groups = { 3 | { 4 | fx = 'wall_StS2R', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | { 'stex', 'tShadow2', 'shadow2S' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/ScrollerFloor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'ScrollerFloor' 2 | groups = { 3 | { 4 | fx = 'scrollerFloor', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/Stone.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Stone' 2 | groups = { 3 | { 4 | fx = 'bedanim', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvBackBottomBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvBackBottomBricks' 2 | groups = { 3 | { 4 | fx = 'normalMapL', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tLmap', 'FakeLightmap' }, 8 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvBigRosette.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvBigRosette' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BigRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/BigRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvCeilsBrick.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvCeilsBrick' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/CeilBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/CeilBrickLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvCenterPillars.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvCenterPillars' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/CenterPillars' }, 7 | { 'tex', 'tNormalAO', 'rm/CenterPillarsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvCenterPlate.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvCenterPlate' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/CenterPlate' }, 7 | { 'tex', 'tNormalAO', 'rm/CenterPlateLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvCorridor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvCorridor' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvDoor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoor' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvDoorArc.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorArc' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/DoorArc' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorArcLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvDoorArcSide.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorArcSide' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/DoorArc' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorArcLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvDoorHandle.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorHandle' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvDoorHandleAnchor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorHandleAnchor' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvDoorRosette_2x1tex.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorRosette_2x1tex' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/DoorRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvDoorSide.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorSide' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFloorBrick.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFloorBrick' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FloorBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FloorBrickLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontArcBrs.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontArcBrs' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/ArcBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/TopArcBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontBottomBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontBottomBricks' 2 | groups = { 3 | { 4 | fx = 'normalMapL', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tLmap', 'FakeLightmap' }, 8 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontRosBricksA.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosBricksA' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontRosBricksB.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosBricksB' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontRosBricksC.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosBricksC' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontRosBricksD.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosBricksD' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontRosEnd.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosEnd' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteEnd' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteEndLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontRosette.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosette' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontTopArcs.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontTopArcs' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopArcs' }, 7 | { 'tex', 'tNormalAO', 'rm/TopArcsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvFrontTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BricksTopLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvGarg1Body.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGarg1Body' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Garg1Body' }, 7 | { 'tex', 'tNormalAO', 'rm/Garg1BodyLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvGarg1Cage.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGarg1Cage' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Garg1Cage' }, 7 | { 'tex', 'tNormalAO', 'rm/Garg1CageLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvGarg2Body.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGarg2Body' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Garg2Body' }, 7 | { 'tex', 'tNormalAO', 'rm/Garg2BodyLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvGarg2Cage.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGarg2Cage' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Garg1Cage' }, 7 | { 'tex', 'tNormalAO', 'rm/Garg2CageLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvGargoyleBackBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGargoyleBackBricks' 2 | groups = { 3 | { 4 | fx = 'normalMapL', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks2' }, 7 | { 'tex', 'tLmap', 'FakeLightmap' }, 8 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvGargoyleLeftBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGargoyleLeftBricks' 2 | groups = { 3 | { 4 | fx = 'normalMapL', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks2' }, 7 | { 'tex', 'tLmap', 'FakeLightmap' }, 8 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvGargoyleRightBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGargoyleRightBricks' 2 | groups = { 3 | { 4 | fx = 'normalMapL', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks2' }, 7 | { 'tex', 'tLmap', 'FakeLightmap' }, 8 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvGargoyleTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGargoyleTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMapL', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks2' }, 7 | { 'tex', 'tLmap', 'FakeLightmap' }, 8 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvPillarBottom.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvPillarBottom' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/PillarBottom' }, 7 | { 'tex', 'tNormalAO', 'rm/PillarBottomLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvPillarBottomRailing.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvPillarBottomRailing' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/PillarBottomRailing' }, 7 | { 'tex', 'tNormalAO', 'rm/PillarBottomRailingLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvPillarHead_2x1tex.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvPillarHead_2x1tex' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/PillarHead' }, 7 | { 'tex', 'tNormalAO', 'rm/PillarHeadLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvPostament.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvPostament' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Postament' }, 7 | { 'tex', 'tNormalAO', 'rm/PostamentLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvRosetteCenter.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvRosetteCenter' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/RosetteCenter' }, 7 | { 'tex', 'tNormalAO', 'rm/RosetteCenterLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvSideArcBrs.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideArcBrs' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/ArcBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/TopArcBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvSideCenterBackPlane.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideCenterBackPlane' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/SideCenterBackPlane' }, 7 | { 'tex', 'tNormalAO', 'rm/SideCenterBackPlaneLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvSideCenterBottomBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideCenterBottomBricks' 2 | groups = { 3 | { 4 | fx = 'normalMapL', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tLmap', 'FakeLightmap' }, 8 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 9 | }, 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvSideLeftTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideLeftTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BricksTopLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvSideRightTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideRightTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BricksTopLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvSideTopArcs.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideTopArcs' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopArcs' }, 7 | { 'tex', 'tNormalAO', 'rm/TopArcsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvSmRosette.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSmRosette' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/SmRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/SmRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvSmallRosette.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSmallRosette' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/SmallRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/SmallRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BricksTopLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvTopPillar.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvTopPillar' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopPillar' }, 7 | { 'tex', 'tNormalAO', 'rm/TopPillarLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/normal/uvTorch.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvTorch' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Torch' }, 7 | { 'tex', 'tNormalAO', 'rm/TorchLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/Bed.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Bed' 2 | groups = { 3 | { 4 | fx = 'wall_St', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/Bicas.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Bicas' 2 | groups = { 3 | { 4 | fx = 'skinRefl', pri = 0, 5 | params = { 6 | { 'tex', 'tNormalAO', 'BicasLo.NMF.nao' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/RoomCeil.dmdl: -------------------------------------------------------------------------------- 1 | name = 'RoomCeil' 2 | groups = { 3 | { 4 | fx = 'wall_St', pri = 0, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/RoomFloor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'RoomFloor' 2 | groups = { 3 | { 4 | fx = 'wall_StS', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/RoomFloorFr.dmdl: -------------------------------------------------------------------------------- 1 | name = 'RoomFloorFr' 2 | groups = { 3 | { 4 | fx = 'wall_StS', pri = 0, 5 | params = { 6 | { 'stex', 'tShadow', 'shadowBlur' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvBackBottomBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvBackBottomBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvBigRosette.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvBigRosette' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BigRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/BigRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvCeilsBrick.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvCeilsBrick' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/CeilBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/CeilBrickLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvCenterPillars.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvCenterPillars' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/CenterPillars' }, 7 | { 'tex', 'tNormalAO', 'rm/CenterPillarsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvCenterPlate.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvCenterPlate' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/CenterPlate' }, 7 | { 'tex', 'tNormalAO', 'rm/CenterPlateLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvCorridor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvCorridor' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvDoor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoor' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvDoorArc.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorArc' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/DoorArc' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorArcLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvDoorArcSide.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorArcSide' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/DoorArc' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorArcLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvDoorHandle.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorHandle' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvDoorHandleAnchor.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorHandleAnchor' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvDoorRosette_2x1tex.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorRosette_2x1tex' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/DoorRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvDoorSide.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvDoorSide' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Doors' }, 7 | { 'tex', 'tNormalAO', 'rm/DoorsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFloorBrick.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFloorBrick' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FloorBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FloorBrickLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontArcBrs.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontArcBrs' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/ArcBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/TopArcBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontBottomBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontBottomBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontRosBricksA.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosBricksA' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontRosBricksB.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosBricksB' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontRosBricksC.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosBricksC' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontRosBricksD.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosBricksD' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontRosEnd.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosEnd' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosetteEnd' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteEndLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontRosette.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontRosette' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/FrontRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/FrontRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontTopArcs.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontTopArcs' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopArcs' }, 7 | { 'tex', 'tNormalAO', 'rm/TopArcsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvFrontTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvFrontTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BricksTopLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvGarg1Body.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGarg1Body' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Garg1Body' }, 7 | { 'tex', 'tNormalAO', 'rm/Garg1BodyLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvGarg1Cage.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGarg1Cage' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Garg1Cage' }, 7 | { 'tex', 'tNormalAO', 'rm/Garg1CageLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvGarg2Body.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGarg2Body' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Garg2Body' }, 7 | { 'tex', 'tNormalAO', 'rm/Garg2BodyLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvGarg2Cage.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGarg2Cage' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Garg1Cage' }, 7 | { 'tex', 'tNormalAO', 'rm/Garg2CageLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvGargoyleBackBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGargoyleBackBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvGargoyleLeftBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGargoyleLeftBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvGargoyleRightBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGargoyleRightBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvGargoyleTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvGargoyleTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvPillarBottom.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvPillarBottom' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/PillarBottom' }, 7 | { 'tex', 'tNormalAO', 'rm/PillarBottomLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvPillarBottomRailing.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvPillarBottomRailing' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/PillarBottomRailing' }, 7 | { 'tex', 'tNormalAO', 'rm/PillarBottomRailingLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvPillarHead_2x1tex.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvPillarHead_2x1tex' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/PillarHead' }, 7 | { 'tex', 'tNormalAO', 'rm/PillarHeadLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvPostament.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvPostament' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Postament' }, 7 | { 'tex', 'tNormalAO', 'rm/PostamentLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvRosetteCenter.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvRosetteCenter' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/RosetteCenter' }, 7 | { 'tex', 'tNormalAO', 'rm/RosetteCenterLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvSideArcBrs.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideArcBrs' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/ArcBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/TopArcBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvSideCenterBackPlane.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideCenterBackPlane' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/SideCenterBackPlane' }, 7 | { 'tex', 'tNormalAO', 'rm/SideCenterBackPlaneLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvSideCenterBottomBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideCenterBottomBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/BottomBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BottomBricksLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvSideLeftTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideLeftTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BricksTopLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvSideRightTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideRightTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BricksTopLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvSideTopArcs.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSideTopArcs' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopArcs' }, 7 | { 'tex', 'tNormalAO', 'rm/TopArcsLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvSmRosette.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSmRosette' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/SmRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/SmRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvSmallRosette.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvSmallRosette' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/SmallRosette' }, 7 | { 'tex', 'tNormalAO', 'rm/SmallRosetteLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvTopBricks.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvTopBricks' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopBricks' }, 7 | { 'tex', 'tNormalAO', 'rm/BricksTopLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvTopPillar.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvTopPillar' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/TopPillar' }, 7 | { 'tex', 'tNormalAO', 'rm/TopPillarLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/data/model/reflected/uvTorch.dmdl: -------------------------------------------------------------------------------- 1 | name = 'uvTorch' 2 | groups = { 3 | { 4 | fx = 'normalMap', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'rm/Torch' }, 7 | { 'tex', 'tNormalAO', 'rm/TorchLo.NMF.nao' }, 8 | }, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /ic2005/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/ic2005/src/DirectX.ico -------------------------------------------------------------------------------- /ic2005/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | /** 7 | * Demo application. 8 | */ 9 | class CDemo : public CSystem, public IInputListener { 10 | public: 11 | CDemo(); 12 | 13 | // IDingusApplication 14 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 15 | virtual void initialize( IDingusAppContext& appContext ); 16 | virtual void shutdown(); 17 | virtual bool shouldFinish(); 18 | virtual bool shouldShowStats(); 19 | virtual void perform(); 20 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 21 | 22 | // IInputListener 23 | virtual void onInputEvent( const CInputEvent& event ); 24 | virtual void onInputStage(); 25 | 26 | private: 27 | void loadDemo(); 28 | }; 29 | 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /ic2005/src/demo/PostProcess.h: -------------------------------------------------------------------------------- 1 | #ifndef __POST_PROCESS_H 2 | #define __POST_PROCESS_H 3 | 4 | #include 5 | 6 | 7 | class CPostProcess { 8 | public: 9 | CPostProcess( const char* ridTemp1, const char* ridTemp2/*, const char* ridDownSmp*/ ); 10 | ~CPostProcess(); 11 | 12 | // down-samples into temp1 13 | void downsampleRT( IDirect3DSurface9& rt ); 14 | 15 | // Ping-pong blurs between temp 1 and 2 16 | void pingPongBlur( int passes, int startPass = 0, float spreadMult = 1.0f ); 17 | 18 | private: 19 | std::string mTempRids[2]; 20 | CRenderableMesh* mBloomPingPongs[2]; 21 | SVector4 mFixUVs4th; 22 | SVector4 mTexelOffsetsX; 23 | SVector4 mTexelOffsetsY; 24 | 25 | //CRenderableMesh* mDownsample4; 26 | }; 27 | 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /ic2005/src/demo/ThirdPersonCamera.h: -------------------------------------------------------------------------------- 1 | #ifndef __THIRD_PERSON_CAMERA_H 2 | #define __THIRD_PERSON_CAMERA_H 3 | 4 | 5 | 6 | class CThirdPersonCameraController : public boost::noncopyable { 7 | public: 8 | CThirdPersonCameraController( const SMatrix4x4& charMat, SMatrix4x4& cameraMat, 9 | const SVector3& boundMin, const SVector3& boundMax ); 10 | 11 | void update( float dt ); 12 | 13 | private: 14 | SVector3 getIdealOrigin() const; 15 | SVector3 getIdealLookat() const; 16 | 17 | private: 18 | SVector3 mBoundMin; 19 | SVector3 mBoundMax; 20 | 21 | const SMatrix4x4* mCharMat; 22 | SMatrix4x4* mCameraMat; 23 | 24 | SVector3 mLookatPoint; 25 | SVector3 mLookatVel; 26 | SVector3 mOriginVel; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ic2005/src/demo/Tweaker.h: -------------------------------------------------------------------------------- 1 | #ifndef __TWEAKER_H 2 | #define __TWEAKER_H 3 | 4 | namespace dingus { 5 | class CUIDialog; 6 | }; 7 | 8 | 9 | namespace tweaker { 10 | 11 | struct SOptions { 12 | SOptions(); 13 | void apply(); 14 | 15 | bool wireframe; 16 | bool shadows; 17 | bool reflections; 18 | bool dof; 19 | bool normalmaps; 20 | bool ao; 21 | 22 | bool showFPS; 23 | bool hideWalls; 24 | bool funky; 25 | }; 26 | 27 | 28 | void init(); 29 | void shutdown(); 30 | 31 | void show(); 32 | void hide(); 33 | CUIDialog& getDlg(); 34 | bool isVisible(); 35 | 36 | const SOptions& getOptions(); 37 | }; 38 | 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /ic2005/src/demo/wallz/FractureScenario.h: -------------------------------------------------------------------------------- 1 | #ifndef __FRACTURE_SCENARIO_H 2 | #define __FRACTURE_SCENARIO_H 3 | 4 | class CWall3D; 5 | 6 | void gReadFractureScenario( const char* fileName ); 7 | 8 | void gUpdateFractureScenario( double frame, double t, int lodIndex, CWall3D** walls ); 9 | 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /ic2005/src/demo/wallz/WallFracturer.h: -------------------------------------------------------------------------------- 1 | #ifndef __WALL_FRACTURER_H 2 | #define __WALL_FRACTURER_H 3 | 4 | class CWall2D; 5 | 6 | void wallFractureCompute( CWall2D& wall ); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /ic2005/src/demo/wallz/WallPhysics.h: -------------------------------------------------------------------------------- 1 | #ifndef __WALL_PHYSICS_H 2 | #define __WALL_PHYSICS_H 3 | 4 | #include "../DemoResources.h" 5 | 6 | class CWall3D; 7 | 8 | namespace dingus { 9 | class CDebugRenderer; 10 | }; 11 | 12 | namespace wall_phys { 13 | 14 | struct SStats { 15 | float msPhys; 16 | float msColl; 17 | float msUpdate; 18 | int pieceCount; 19 | int vertexCount; 20 | int triCount; 21 | }; 22 | 23 | void initialize( float updDT, const SVector3& boundMin, const SVector3& boundMax ); 24 | 25 | void addWall( int lodIndex, const CWall3D& wall ); 26 | void addStaticWall( int lodIndex, const SMatrix4x4& matrix ); 27 | 28 | void shutdown(); 29 | 30 | void spawnPiece( int lodIndex, int wallID, int index, bool longLived ); 31 | void clearPieces(); 32 | 33 | void update(); 34 | 35 | void render( eRenderMode rm ); 36 | 37 | const SStats& getStats(); 38 | 39 | }; // namespace wall_phys 40 | 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /ic2005/src/extern/bass.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/ic2005/src/extern/bass.lib -------------------------------------------------------------------------------- /ic2005/src/extern/ode/src/fastdot.c: -------------------------------------------------------------------------------- 1 | /* generated code, do not edit. */ 2 | 3 | #include "ode/matrix.h" 4 | 5 | 6 | dReal dDot (const dReal *a, const dReal *b, int n) 7 | { 8 | dReal p0,q0,m0,p1,q1,m1,sum; 9 | sum = 0; 10 | n -= 2; 11 | while (n >= 0) { 12 | p0 = a[0]; q0 = b[0]; 13 | m0 = p0 * q0; 14 | p1 = a[1]; q1 = b[1]; 15 | m1 = p1 * q1; 16 | sum += m0; 17 | sum += m1; 18 | a += 2; 19 | b += 2; 20 | n -= 2; 21 | } 22 | n += 2; 23 | while (n > 0) { 24 | sum += (*a) * (*b); 25 | a++; 26 | b++; 27 | n--; 28 | } 29 | return sum; 30 | } 31 | -------------------------------------------------------------------------------- /ic2005/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/ic2005/src/logo.bmp -------------------------------------------------------------------------------- /ic2005/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /ic2005/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /ic2005/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Globals.h" 4 | 5 | dingus::CRenderContext* G_RENDERCTX = NULL; 6 | dingus::CInputContext* G_INPUTCTX = NULL; 7 | -------------------------------------------------------------------------------- /ic2005/src/system/MusicPlayer.h: -------------------------------------------------------------------------------- 1 | #ifndef __MUSIC_PLAYER_H 2 | #define __MUSIC_PLAYER_H 3 | 4 | namespace music { 5 | 6 | void init( HWND hwnd ); 7 | void close(); 8 | void update(); 9 | 10 | void play( const char* fileName, bool loop ); 11 | void setVolume( float volume ); 12 | float getTime(); 13 | void setTime( float t ); 14 | float getLength(); 15 | 16 | }; 17 | 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /ic2005/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /ic2005/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | 6 | 7 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT ) 8 | { 9 | CDemo* demo = NULL; 10 | CDingusSystem* system = NULL; 11 | try { 12 | demo = new CDemo(); 13 | system = new CDingusSystem( *demo ); 14 | if( SUCCEEDED( system->create( hInst, false ) ) ) 15 | system->run(); 16 | } catch( std::exception& e ) { 17 | if( system ) 18 | system->getOutOfFullscreen(); 19 | 20 | std::string willExit = "\n\nThe application will now exit."; 21 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK | MB_SETFOREGROUND | MB_TOPMOST ); 22 | return 0; 23 | } 24 | return 0; 25 | } 26 | -------------------------------------------------------------------------------- /nanobots/data/fx/lib/defines.fx: -------------------------------------------------------------------------------- 1 | #ifndef __DEFINES_FX 2 | #define __DEFINES_FX 3 | 4 | 5 | #define ENABLE_PS20_PATH 6 | #define ENABLE_PS11_PATH 7 | 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /nanobots/data/fx/lib/fog.fx: -------------------------------------------------------------------------------- 1 | #ifndef __FOG_FX 2 | #define __FOG_FX 3 | 4 | #include "shared.fx" 5 | 6 | static inline float gFogWV( float4 pos, float4x4 wv ) { 7 | float3 vpos = mul( pos, wv ); 8 | //float d = length(vpos); 9 | float d = vpos.z; 10 | return (vFog.y - d) * vFog.z; 11 | } 12 | 13 | static inline float gFog( float4 pos ) { 14 | //float d = length(pos.xyz-vEye); 15 | float3 vpos = mul( pos, mView ); 16 | float d = vpos.z; 17 | return (vFog.y - d) * vFog.z; 18 | } 19 | 20 | 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /nanobots/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 { 6 | pass P0 { 7 | VertexShader = NULL; 8 | PixelShader = NULL; 9 | 10 | AlphaBlendEnable = False; 11 | CullMode = ; 12 | ZFunc = Less; 13 | 14 | FogTableMode = None; 15 | FogVertexMode = Linear; 16 | FogColor = (vFogColor); 17 | } 18 | pass PLast { 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/AI.dmdl: -------------------------------------------------------------------------------- 1 | name = 'AI' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'NanoAI' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Blocker.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Blocker' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'NanoBlocker' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Collector.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Collector' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'NanoCollector' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Container.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Container' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'NanoContainer' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor1.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor1' 2 | groups = { 3 | { 4 | fx = 'PointDecor', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'Decor1' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor2.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor2' 2 | groups = { 3 | { 4 | fx = 'PointDecor', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'Decor2' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor3a-b.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor3a' 2 | groups = { 3 | { 4 | fx = 'PointDecor', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'Decor3b' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor3a.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor3a' 2 | groups = { 3 | { 4 | fx = 'PointDecor', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'Decor3' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor3b-b.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor3b' 2 | groups = { 3 | { 4 | fx = 'PointDecor', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'Decor3b' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor3b.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor3b' 2 | groups = { 3 | { 4 | fx = 'PointDecor', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'Decor3' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor4.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor4' 2 | groups = { 3 | { 4 | fx = 'PointDecorCell', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'DecorEnv' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor5.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor4' 2 | groups = { 3 | { 4 | fx = 'PointDecorCell', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'DecorEnv' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor6.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor4' 2 | groups = { 3 | { 4 | fx = 'PointDecorCell', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'DecorEnv' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Decor7.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Decor4' 2 | groups = { 3 | { 4 | fx = 'PointDecorCell', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'DecorEnv' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Explorer.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Explorer' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'NanoExplorer' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/IPCreator.dmdl: -------------------------------------------------------------------------------- 1 | name = 'IPCreator' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'NanoIPCreator' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Level.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Level' 2 | groups = { 3 | { 4 | fx = 'level', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'WallsGray' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/LevelMega.dmdl: -------------------------------------------------------------------------------- 1 | name = 'LevelMega' 2 | groups = { 3 | { 4 | fx = 'levelMega', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'WallsGray' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Needle.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Needle' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'NanoNeedle' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PAI.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PAI' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'PAI' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PBlocker.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PBlocker' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'PBlocker' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PCollector.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PCollector' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'PCollector' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PContainer.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PContainer' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'PContainer' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PExplorer.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PExplorer' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'PExplorer' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PNeuroCtrl.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PNeuroCtrl' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'PNeuroCtrl' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PointAZN.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PointAZN' 2 | groups = { 3 | { 4 | fx = 'Point', pri = 1, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PointHoshimi.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PointHoshimi' 2 | groups = { 3 | { 4 | fx = 'Point', pri = 1, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PointInjection.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PointHoshimi' 2 | groups = { 3 | { 4 | fx = 'PointInjection', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'PointInjection' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/PointMission.dmdl: -------------------------------------------------------------------------------- 1 | name = 'PointMission' 2 | groups = { 3 | { 4 | fx = 'Point', pri = 1, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Points.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Points' 2 | groups = { 3 | { 4 | fx = 'points', pri = 1, 5 | params = { 6 | { 'tex', 'tBase', 'Spark' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/StreamRed.dmdl: -------------------------------------------------------------------------------- 1 | name = 'StreamRed' 2 | groups = { 3 | { 4 | fx = 'StreamEntity', pri = 1, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/StreamWhite.dmdl: -------------------------------------------------------------------------------- 1 | name = 'StreamRed' 2 | groups = { 3 | { 4 | fx = 'StreamEntity', pri = 1, 5 | params = { 6 | }, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /nanobots/data/model/normal/Wall.dmdl: -------------------------------------------------------------------------------- 1 | name = 'Wall' 2 | groups = { 3 | { 4 | fx = 'entity', pri = 0, 5 | params = { 6 | { 'tex', 'tBase', 'NanoWall' }, 7 | }, 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /nanobots/launchtest.bat: -------------------------------------------------------------------------------- 1 | PHViewer3D.exe localhost 9000 -------------------------------------------------------------------------------- /nanobots/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/nanobots/src/DirectX.ico -------------------------------------------------------------------------------- /nanobots/src/demo/CameraReplay.h: -------------------------------------------------------------------------------- 1 | #ifndef __CAMERA_REPLAY_H 2 | #define __CAMERA_REPLAY_H 3 | 4 | enum eRecordMode { 5 | REC_NONE, 6 | REC_WRITE, 7 | REC_READ 8 | }; 9 | 10 | 11 | class CCameraReplay 12 | { 13 | public: 14 | struct SFrameData { 15 | SVector3 pos; 16 | SQuaternion rot; 17 | float megaZoom; 18 | float megaTilt; 19 | bool followMode; 20 | 21 | void lerp( const SFrameData& a, const SFrameData& b, float t ); 22 | }; 23 | 24 | public: 25 | CCameraReplay( const std::string& fileName, eRecordMode mode ); 26 | ~CCameraReplay(); 27 | 28 | bool isReadingReplay() const { return mMode == REC_READ; } 29 | 30 | void processFrame( float frame, SMatrix4x4& viewerMat, float& zoom, float& tilt, bool& follow ); 31 | 32 | private: 33 | bool readReplayFile(); 34 | void writeReplayHeader(); 35 | 36 | private: 37 | FILE* mFile; 38 | eRecordMode mMode; 39 | std::vector mData; 40 | }; 41 | 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /nanobots/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | 7 | class CDemo : public CSystem, public IInputListener { 8 | public: 9 | CDemo( const std::string& serverName, int serverPort, const std::string& recordFileName, bool writeRecord ); 10 | 11 | // IDingusApplication 12 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 13 | virtual void initD3DSettingsPref( SD3DSettingsPref& pref ); 14 | 15 | virtual void initialize( IDingusAppContext& appContext ); 16 | virtual void shutdown(); 17 | virtual bool shouldFinish(); 18 | virtual bool shouldShowStats(); 19 | virtual void perform(); 20 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 21 | 22 | // IInputListener 23 | virtual void onInputEvent( const CInputEvent& event ); 24 | virtual void onInputStage(); 25 | }; 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /nanobots/src/demo/MinimapRenderer.h: -------------------------------------------------------------------------------- 1 | #ifndef __MINIMAP_RENDERER_H 2 | #define __MINIMAP_RENDERER_H 3 | 4 | #include 5 | 6 | 7 | class CMinimapRenderer : public boost::noncopyable { 8 | public: 9 | CMinimapRenderer( CD3DIndexBuffer& ib ); 10 | ~CMinimapRenderer(); 11 | 12 | void beginEntities() { 13 | mEntities.clear(); 14 | } 15 | void addEntity( const SVector3& pos, D3DCOLOR color, float size = 1.0f ) { 16 | mEntities.push_back( SEntity() ); 17 | mEntities.back().pos = pos; 18 | mEntities.back().color = color; 19 | mEntities.back().size = size; 20 | } 21 | void endEntities() { 22 | } 23 | 24 | void render(); 25 | 26 | private: 27 | CRenderableIndexedBuffer* mRenderable; 28 | CD3DIndexBuffer* mIB; 29 | CD3DVertexDecl* mVDecl; 30 | 31 | struct SEntity { 32 | SVector3 pos; 33 | D3DCOLOR color; 34 | float size; 35 | }; 36 | std::vector mEntities; 37 | }; 38 | 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /nanobots/src/demo/entity/AttackEntity.h: -------------------------------------------------------------------------------- 1 | #ifndef __ATTACK_ENTITY_H 2 | #define __ATTACK_ENTITY_H 3 | 4 | class CAttack; 5 | class CExplosion; 6 | class CNimbus; 7 | 8 | 9 | class CAttackEntityManager : public boost::noncopyable { 10 | public: 11 | CAttackEntityManager(); 12 | ~CAttackEntityManager(); 13 | 14 | void begin(); 15 | void renderAttack( const SVector3& origin, int targx, int targy, float turnAlpha, const SVector4& color ); 16 | void renderExplosion( const SVector3& origin, float turnAlpha ); 17 | void renderNimbus( const SVector3& origin, float scale ); 18 | void end() { }; 19 | 20 | private: 21 | std::vector mAttacks; 22 | std::vector mExplosions; 23 | std::vector mNimbi; 24 | int mAttackCounter; 25 | int mExplosionCounter; 26 | int mNimbusCounter; 27 | }; 28 | 29 | 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /nanobots/src/demo/entity/PointEntity.h: -------------------------------------------------------------------------------- 1 | #ifndef __POINT_ENTITY_H 2 | #define __POINT_ENTITY_H 3 | 4 | #include "MeshEntity.h" 5 | #include "../game/GameMap.h" 6 | 7 | 8 | class CPointEntity : public CMeshEntity { 9 | public: 10 | CPointEntity( const CGameMap::SPoint& point ); 11 | virtual ~CPointEntity(); 12 | 13 | // early outs if not visible 14 | void renderPoint( eRenderMode renderMode ); 15 | 16 | void update(); 17 | 18 | void hide(); 19 | const CGameMap::SPoint* getPoint() const { return mPoint; } 20 | 21 | private: 22 | SVector4 mColor; 23 | double mTimeOffset; 24 | float mAlphaBase, mAlphaAmpl; 25 | const CGameMap::SPoint* mPoint; 26 | }; 27 | 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /nanobots/src/demo/entity/StreamEntity.h: -------------------------------------------------------------------------------- 1 | #ifndef __STREAM_ENTITY_H 2 | #define __STREAM_ENTITY_H 3 | 4 | #include "MeshEntity.h" 5 | #include "../game/GameMap.h" 6 | class CStreamImpostorsRenderer; 7 | 8 | 9 | class CStreamEntity : public CMeshEntity { 10 | public: 11 | CStreamEntity( const CGameMap::SStream& stream, float x, float y, int type ); 12 | virtual ~CStreamEntity(); 13 | 14 | // early outs if not visible 15 | void render( eRenderMode renderMode, CStreamImpostorsRenderer& impostorer, bool insideView ); 16 | void update(); 17 | 18 | private: 19 | SVector4 mColor; 20 | const CGameMap::SStream* mStream; 21 | float mVelocityX; 22 | float mVelocityY; 23 | int mType; 24 | }; 25 | 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /nanobots/src/demo/map/PointsMesh.h: -------------------------------------------------------------------------------- 1 | #ifndef __POINTS_MESH_H 2 | #define __POINTS_MESH_H 3 | 4 | #include "../DemoResources.h" 5 | #include 6 | 7 | class CGameMap; 8 | class CLevelMesh; 9 | 10 | 11 | // -------------------------------------------------------------------------- 12 | 13 | 14 | class CPointsMesh : public boost::noncopyable { 15 | public: 16 | CPointsMesh( const CGameMap& gameMap, const CLevelMesh& levelMesh ); 17 | ~CPointsMesh(); 18 | 19 | void render( eRenderMode renderMode ); 20 | 21 | private: 22 | CRenderableMesh* mMesh[RMCOUNT]; 23 | }; 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /nanobots/src/demo/map/TriangleMesh.h: -------------------------------------------------------------------------------- 1 | #ifndef __TRIANGLE_MESH_H 2 | #define __TRIANGLE_MESH_H 3 | 4 | #include "GenericMesh.h" 5 | #include "SubdivMesh.h" 6 | 7 | // -------------------------------------------------------------------------- 8 | 9 | /** 10 | * A triangle-based mesh. 11 | */ 12 | class CTriangleMesh : public CGenericMesh<3,SVector4> { 13 | public: 14 | void initFromSubdivMesh( const CSubdivMesh& sm ); 15 | void optimize( float tolerance ); 16 | /// @return false if hedge can't be collapsed 17 | bool collapseHEdge( int hedge ); 18 | 19 | private: 20 | void removeHEdge( int hedge, bool dontFixLast ); 21 | void removeHEdges( int count, int* hedges ); 22 | void removeVert( int vert ); 23 | void removeFace( int face, bool dontFixLast ); 24 | }; 25 | 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /nanobots/src/demo/map/Turbulence.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "Turbulence.h" 3 | #include "../game/GameMap.h" 4 | 5 | 6 | // -------------------------------------------------------------------------- 7 | 8 | CTurbulence::CTurbulence( const CGameMap& gmap ) 9 | : mMap(&gmap) 10 | , mCells(NULL) 11 | { 12 | mCells = new SCell[gmap.getCellsX()*gmap.getCellsY()]; 13 | memset( mCells, 0, gmap.getCellsX()*gmap.getCellsY()*sizeof(SCell) ); 14 | } 15 | 16 | CTurbulence::~CTurbulence() 17 | { 18 | safeDeleteArray( mCells ); 19 | } 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /nanobots/src/demo/map/Turbulence.h: -------------------------------------------------------------------------------- 1 | #ifndef __TURBULENCE_H 2 | #define __TURBULENCE_H 3 | 4 | class CGameMap; 5 | 6 | 7 | class CTurbulence : public boost::noncopyable { 8 | public: 9 | struct SCell { 10 | float vx; 11 | float vy; 12 | }; 13 | 14 | public: 15 | CTurbulence( const CGameMap& gmap ); 16 | ~CTurbulence(); 17 | 18 | void update(); 19 | 20 | private: 21 | const CGameMap* mMap; 22 | 23 | // turbulence cells array 24 | SCell* mCells; 25 | }; 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /nanobots/src/demo/net/NetMessages.h: -------------------------------------------------------------------------------- 1 | #ifndef __NET_MESSAGES_H 2 | #define __NET_MESSAGES_H 3 | 4 | #include "../game/GameTypes.h" 5 | 6 | class CGameDesc; 7 | class CGameState; 8 | struct SServerState; 9 | 10 | namespace net { 11 | 12 | 13 | CGameDesc* receiveGameDesc( std::string& errMsg ); 14 | 15 | void receiveServerState( int playerCount, SServerState& state, std::string& errMsg, bool startFlag ); 16 | 17 | bool requestJoin( int playerID ); 18 | 19 | void updateGame( int keyCode, int locX, int locY, CGameState& state ); 20 | 21 | }; 22 | 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /nanobots/src/extern/Opcode/OPC_PlanesAABBOverlap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/nanobots/src/extern/Opcode/OPC_PlanesAABBOverlap.h -------------------------------------------------------------------------------- /nanobots/src/extern/Opcode/OPC_RayTriOverlap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/nanobots/src/extern/Opcode/OPC_RayTriOverlap.h -------------------------------------------------------------------------------- /nanobots/src/extern/Opcode/OPC_TriBoxOverlap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/nanobots/src/extern/Opcode/OPC_TriBoxOverlap.h -------------------------------------------------------------------------------- /nanobots/src/extern/Opcode/ReadMe.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/nanobots/src/extern/Opcode/ReadMe.txt -------------------------------------------------------------------------------- /nanobots/src/extern/Opcode/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2 | /* 3 | * OPCODE - Optimized Collision Detection 4 | * Copyright (C) 2001 Pierre Terdiman 5 | * Homepage: http://www.codercorner.com/Opcode.htm 6 | */ 7 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 8 | 9 | //#define ICE_MAIN 10 | #include "Stdafx.h" 11 | -------------------------------------------------------------------------------- /nanobots/src/extern/zlib/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /nanobots/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/nanobots/src/logo.bmp -------------------------------------------------------------------------------- /nanobots/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /nanobots/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | // other stuff 12 | #include 13 | #include 14 | #include 15 | 16 | #include "demo/game/GameTypes.h" 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /nanobots/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "Globals.h" 3 | 4 | CRenderContext* G_RENDERCTX = NULL; 5 | CInputContext* G_INPUTCTX = NULL; 6 | 7 | CConsoleChannel& CONS = CConsole::getChannel("game"); 8 | -------------------------------------------------------------------------------- /nanobots/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /testEffects/data/fx/color.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | float4x4 mWorld; 5 | float4x4 mWVP; 6 | float4 vColor; 7 | 8 | 9 | SPosCol vsMain( SPosN i ) { 10 | SPosCol o; 11 | float3 n = mul( i.normal*2-1, (float3x3)mWorld ); 12 | o.pos = mul( i.pos, mWVP ); 13 | 14 | float4 diff = saturate( dot( n, vLightDir ) ) * vColor + 0.3; 15 | o.color = diff; 16 | return o; 17 | } 18 | 19 | 20 | 21 | technique tecFFP 22 | { 23 | pass P0 { 24 | VertexShader = compile vs_1_1 vsMain(); 25 | PixelShader = NULL; 26 | 27 | ColorOp[0] = SelectArg1; 28 | ColorArg1[0] = Diffuse; 29 | AlphaOp[0] = SelectArg1; 30 | AlphaArg1[0] = Diffuse; 31 | ColorOp[1] = Disable; 32 | AlphaOp[1] = Disable; 33 | } 34 | RESTORE_PASS 35 | } 36 | -------------------------------------------------------------------------------- /testEffects/data/fx/colorBlend.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | float4x4 mWorld; 5 | float4x4 mWVP; 6 | float4 vColor; 7 | 8 | 9 | SPosCol vsMain( SPosN i ) { 10 | SPosCol o; 11 | o.pos = mul( i.pos, mWVP ); 12 | float3 n = mul( i.normal*2-1, (float3x3)mWorld ); 13 | 14 | float4 diff = abs( dot( n, vLightDir ) ) * vColor + 0.3; 15 | o.color = diff; 16 | o.color.a = 0.5; 17 | return o; 18 | } 19 | 20 | 21 | 22 | technique tecFFP 23 | { 24 | pass P0 { 25 | VertexShader = compile vs_1_1 vsMain(); 26 | PixelShader = NULL; 27 | 28 | AlphaBlendEnable = True; 29 | SrcBlend = SrcAlpha; 30 | DestBlend = InvSrcAlpha; 31 | 32 | ZWriteEnable = False; 33 | 34 | ColorOp[0] = SelectArg1; 35 | ColorArg1[0] = Diffuse; 36 | AlphaOp[0] = SelectArg1; 37 | AlphaArg1[0] = Diffuse; 38 | ColorOp[1] = Disable; 39 | AlphaOp[1] = Disable; 40 | } 41 | RESTORE_PASS 42 | } 43 | -------------------------------------------------------------------------------- /testEffects/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 { 6 | pass P0 { 7 | AlphaBlendEnable = False; 8 | CullMode = ; 9 | ZFunc = Less; 10 | } 11 | pass PLast { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /testEffects/data/fx/lib/shared.fx: -------------------------------------------------------------------------------- 1 | // global parameters are here 2 | 3 | #ifndef __SHARED_FX 4 | #define __SHARED_FX 5 | 6 | 7 | // -------------------------------------------------------------------------- 8 | // time 9 | 10 | shared float fTime; 11 | 12 | // -------------------------------------------------------------------------- 13 | // camera 14 | 15 | shared float4x4 mView; 16 | shared float4x4 mProjection; 17 | shared float4x4 mViewProj; 18 | shared float3 vEye; 19 | shared float3 vCameraX; 20 | shared float3 vCameraY; 21 | 22 | // -------------------------------------------------------------------------- 23 | // others 24 | 25 | // cull mode: CW=2 (should be default), CCW=3 (for reflected, etc.) 26 | shared int iCull = 2; 27 | 28 | 29 | static const float3 vLightDir = -normalize( float3(0.4, -1.0, 0.8) ); 30 | 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /testEffects/data/mesh/Box.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/data/mesh/Box.dmesh -------------------------------------------------------------------------------- /testEffects/data/mesh/Cylinder.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/data/mesh/Cylinder.dmesh -------------------------------------------------------------------------------- /testEffects/data/mesh/Table.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/data/mesh/Table.dmesh -------------------------------------------------------------------------------- /testEffects/data/mesh/Torus.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/data/mesh/Torus.dmesh -------------------------------------------------------------------------------- /testEffects/data/mesh/billboard.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/data/mesh/billboard.dmesh -------------------------------------------------------------------------------- /testEffects/data/tex/Checker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/data/tex/Checker.png -------------------------------------------------------------------------------- /testEffects/data/tex/guiskin.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/data/tex/guiskin.dds -------------------------------------------------------------------------------- /testEffects/results.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/results.xls -------------------------------------------------------------------------------- /testEffects/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/src/DirectX.ico -------------------------------------------------------------------------------- /testEffects/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | /** 7 | * Demo application. 8 | */ 9 | class CDemo : public CSystem, public IInputListener { 10 | public: 11 | CDemo(); 12 | 13 | // IDingusApplication 14 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 15 | virtual void initialize( IDingusAppContext& appContext ); 16 | virtual void shutdown(); 17 | virtual bool shouldFinish(); 18 | virtual bool shouldShowStats(); 19 | virtual void perform(); 20 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 21 | 22 | // IInputListener 23 | virtual void onInputEvent( const CInputEvent& event ); 24 | virtual void onInputStage(); 25 | }; 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /testEffects/src/demo/MeshEntity.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "MeshEntity.h" 3 | 4 | 5 | // -------------------------------------------------------------------------- 6 | 7 | CMeshEntity::CMeshEntity( const std::string& meshName ) 8 | : mMesh(0) 9 | { 10 | mMesh = RGET_MESH(meshName); 11 | } 12 | -------------------------------------------------------------------------------- /testEffects/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testEffects/src/logo.bmp -------------------------------------------------------------------------------- /testEffects/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /testEffects/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /testEffects/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Globals.h" 4 | 5 | dingus::CRenderContext* G_RENDERCTX = NULL; 6 | dingus::CInputContext* G_INPUTCTX = NULL; 7 | -------------------------------------------------------------------------------- /testEffects/src/system/Globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | using namespace dingus; 17 | 18 | extern dingus::CRenderContext* G_RENDERCTX; 19 | extern dingus::CInputContext* G_INPUTCTX; 20 | 21 | 22 | const int GUI_X = 640; 23 | const int GUI_Y = 480; 24 | 25 | 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /testEffects/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /testEffects/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | 6 | 7 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, INT ) 8 | { 9 | try { 10 | CDemo* demo = new CDemo(); 11 | CDingusSystem* system = new CDingusSystem( *demo ); 12 | if( SUCCEEDED( system->create( hInst, false ) ) ) 13 | system->run(); 14 | delete demo; 15 | delete system; 16 | } catch( std::exception& e ) { 17 | std::string willExit = "\n\nThe application will now exit."; 18 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK ); 19 | return 0; 20 | } 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /testHDR/data/fx/bloom.fx: -------------------------------------------------------------------------------- 1 | #include "lib/hdrlib.fx" 2 | 3 | 4 | static const int MAX_SAMPLES = 4; 5 | float2 vSmpOffsets[MAX_SAMPLES]; 6 | 7 | 8 | sampler s0 : register(s0); 9 | 10 | half4 psMain( in float2 uv : TEXCOORD0 ) : COLOR 11 | { 12 | half3 sample = 0.0f; 13 | for( int iSample = 0; iSample < MAX_SAMPLES; iSample++ ) 14 | { 15 | sample += tex2D( s0, uv + vSmpOffsets[iSample] ).rgb; 16 | } 17 | sample /= MAX_SAMPLES; 18 | return half4( sample, 1.0f ); 19 | } 20 | 21 | technique tec20 22 | { 23 | pass P0 { 24 | VertexShader = NULL; 25 | PixelShader = compile ps_2_0 psMain(); 26 | } 27 | RESTORE_PASS 28 | } 29 | -------------------------------------------------------------------------------- /testHDR/data/fx/calcAdaptedLum.fx: -------------------------------------------------------------------------------- 1 | #include "lib/hdrlib.fx" 2 | 3 | 4 | float fDeltaTime; 5 | 6 | sampler s0 : register(s0); 7 | sampler s1 : register(s1); 8 | 9 | 10 | float4 psMain( in float2 uv : TEXCOORD0 ) : COLOR 11 | { 12 | float lumAdapted = tex2D(s0, float2(0.5f, 0.5f)); 13 | float lumCurr = tex2D(s1, float2(0.5f, 0.5f)); 14 | 15 | // The user's adapted luminance level is simulated by closing the gap 16 | // between adapted luminance and current luminance by 2% every frame, 17 | // based on a 30 fps rate. This is not an accurate model of human 18 | // adaptation, which can take longer than half an hour. 19 | float lumNew = lumAdapted + (lumCurr - lumAdapted) * ( 1 - pow( 0.98f, 30 * fDeltaTime ) ); 20 | return float4(lumNew, lumNew, lumNew, 1.0f); 21 | } 22 | 23 | technique tec20 24 | { 25 | pass P0 { 26 | VertexShader = NULL; 27 | PixelShader = compile ps_2_0 psMain(); 28 | } 29 | RESTORE_PASS 30 | } 31 | -------------------------------------------------------------------------------- /testHDR/data/fx/downsample4x4.fx: -------------------------------------------------------------------------------- 1 | #include "lib/hdrlib.fx" 2 | 3 | 4 | static const int MAX_SAMPLES = 4; 5 | float2 vSmpOffsets[MAX_SAMPLES]; 6 | 7 | 8 | texture tBase; 9 | sampler2D smpBase = sampler_state { 10 | Texture = (tBase); 11 | MagFilter = Linear; MinFilter = Linear; MipFilter = Point; 12 | AddressU = Clamp; AddressV = Clamp; 13 | }; 14 | 15 | float4 psMain( in float2 uv : TEXCOORD0 ) : COLOR 16 | { 17 | float3 sample = 0.0f; 18 | for( int i=0; i < MAX_SAMPLES; i++ ) 19 | { 20 | float4 s = tex2D( smpBase, uv + vSmpOffsets[i] ); 21 | sample += DecodeRGBE8( s ); 22 | } 23 | return float4( sample / MAX_SAMPLES, 1 ); 24 | } 25 | 26 | technique tec20 27 | { 28 | pass P0 { 29 | VertexShader = NULL; 30 | PixelShader = compile ps_2_0 psMain(); 31 | } 32 | RESTORE_PASS 33 | } 34 | -------------------------------------------------------------------------------- /testHDR/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 { 6 | pass P0 { 7 | VertexShader = NULL; 8 | PixelShader = NULL; 9 | AlphaBlendEnable = False; 10 | CullMode = ; 11 | ZFunc = Less; 12 | } 13 | pass PLast { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /testHDR/data/fx/lib/shadowmap.fx: -------------------------------------------------------------------------------- 1 | #ifndef __SHADOWMAP_FX 2 | #define __SHADOWMAP_FX 3 | 4 | #include "shared.fx" 5 | #include "structs.fx" 6 | 7 | static inline float gShadowZ( float4 wvppos ) { 8 | return wvppos.z / wvppos.w + fShadowBias; 9 | } 10 | 11 | float4 psCasterMain( SPosZ i ) : COLOR { 12 | return i.z; 13 | } 14 | 15 | static inline void gShadowProj( in float4 wpos, 16 | in float4x4 shadowProj, in float4x4 lightVW, 17 | out float2 ouv, out float oz ) 18 | { 19 | ouv = mul( wpos, shadowProj ); 20 | float4 wvpos = mul( wpos, lightVW ); 21 | oz = wvpos.z / wvpos.w; 22 | #ifdef DST_SHADOWS 23 | oz -= fShadowBias; 24 | #endif 25 | } 26 | 27 | static inline float gSampleShadow( sampler2D smap, float2 uv, float iz ) { 28 | float shadow; 29 | #ifdef DST_SHADOWS 30 | shadow = tex2D( smap, float4(uv,iz,1) ); 31 | #else 32 | float z = tex2D( smap, uv ); 33 | shadow = z < iz ? 0.0 : 1.0; 34 | #endif 35 | return shadow; 36 | } 37 | 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /testHDR/data/fx/objectLight.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | #include "lib/hdrlib.fx" 4 | 5 | float3 vPos; 6 | 7 | 8 | // -------------------------------------------------------------------------- 9 | // vertex shader 10 | 11 | SPos vsMain( SPos i ) { 12 | SPos o; 13 | const float MUL_FACTOR = 20.0; 14 | i.pos.xyz *= MUL_FACTOR; 15 | i.pos.xyz += vPos; 16 | o.pos = mul( i.pos, mViewProj ); 17 | o.pos.z /= MUL_FACTOR; // make it appear nearer 18 | return o; 19 | } 20 | 21 | 22 | half4 psMain() : COLOR 23 | { 24 | float3 color = fLightIntensity * 20; 25 | return EncodeRGBE8( color ); 26 | } 27 | 28 | 29 | technique tec20 30 | { 31 | pass P0 { 32 | VertexShader = compile vs_1_1 vsMain(); 33 | PixelShader = compile ps_2_0 psMain(); 34 | ZEnable = False; 35 | ZWriteEnable = False; 36 | } 37 | RESTORE_PASS 38 | } 39 | -------------------------------------------------------------------------------- /testHDR/data/fx/resampleAvgLum.fx: -------------------------------------------------------------------------------- 1 | #include "lib/hdrlib.fx" 2 | 3 | 4 | static const int MAX_SAMPLES = 16; 5 | float2 vSmpOffsets[MAX_SAMPLES]; 6 | 7 | 8 | sampler s0 : register(s0); 9 | 10 | 11 | float4 psMain( in float2 uv : TEXCOORD0 ) : COLOR 12 | { 13 | float sample = 0.0f; 14 | for( int i=0; i < MAX_SAMPLES; i++ ) 15 | { 16 | sample += tex2D( s0, uv + vSmpOffsets[i] ); 17 | } 18 | sample /= MAX_SAMPLES; 19 | return float4( sample, sample, sample, 1 ); 20 | } 21 | 22 | technique tec20 23 | { 24 | pass P0 { 25 | VertexShader = NULL; 26 | PixelShader = compile ps_2_0 psMain(); 27 | } 28 | RESTORE_PASS 29 | } 30 | -------------------------------------------------------------------------------- /testHDR/data/fx/resampleAvgLumExp.fx: -------------------------------------------------------------------------------- 1 | #include "lib/hdrlib.fx" 2 | 3 | 4 | static const int MAX_SAMPLES = 16; 5 | float2 vSmpOffsets[MAX_SAMPLES]; 6 | 7 | 8 | sampler s0 : register(s0); 9 | 10 | 11 | float4 psMain( in float2 uv : TEXCOORD0 ) : COLOR 12 | { 13 | float sample = 0.0f; 14 | for( int i=0; i < MAX_SAMPLES; i++ ) 15 | { 16 | sample += tex2D( s0, uv + vSmpOffsets[i] ); 17 | } 18 | sample = exp( sample/MAX_SAMPLES ); 19 | return float4( sample, sample, sample, 1 ); 20 | } 21 | 22 | technique tec20 23 | { 24 | pass P0 { 25 | VertexShader = NULL; 26 | PixelShader = compile ps_2_0 psMain(); 27 | } 28 | RESTORE_PASS 29 | } 30 | -------------------------------------------------------------------------------- /testHDR/data/fx/sampleAvgLum.fx: -------------------------------------------------------------------------------- 1 | #include "lib/hdrlib.fx" 2 | 3 | 4 | static const int MAX_SAMPLES = 9; 5 | float2 vSmpOffsets[MAX_SAMPLES]; 6 | 7 | 8 | texture tBase; 9 | sampler2D smpBase = sampler_state { 10 | Texture = (tBase); 11 | MagFilter = Linear; MinFilter = Linear; MipFilter = Point; 12 | AddressU = Clamp; AddressV = Clamp; 13 | }; 14 | 15 | float4 psMain( in float2 uv : TEXCOORD0 ) : COLOR 16 | { 17 | float3 vSample = 0.0f; 18 | float fLogLumSum = 0.0f; 19 | for( int iSample = 0; iSample < MAX_SAMPLES; iSample++ ) 20 | { 21 | vSample = tex2D( smpBase, uv + vSmpOffsets[iSample] ).rgb; 22 | fLogLumSum += log( dot(vSample, LUMINANCE_VECTOR)+0.0001f ); 23 | } 24 | fLogLumSum /= MAX_SAMPLES; 25 | return float4( fLogLumSum, fLogLumSum, fLogLumSum, 1.0f ); 26 | } 27 | 28 | technique tec20 29 | { 30 | pass P0 { 31 | VertexShader = NULL; 32 | PixelShader = compile ps_2_0 psMain(); 33 | } 34 | RESTORE_PASS 35 | } 36 | -------------------------------------------------------------------------------- /testHDR/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testHDR/src/DirectX.ico -------------------------------------------------------------------------------- /testHDR/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testHDR/src/logo.bmp -------------------------------------------------------------------------------- /testHDR/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /testHDR/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /testHDR/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Globals.h" 4 | 5 | dingus::CRenderContext* G_RENDERCTX = NULL; 6 | dingus::CInputContext* G_INPUTCTX = NULL; 7 | -------------------------------------------------------------------------------- /testHDR/src/system/Globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | using namespace dingus; 18 | 19 | extern dingus::CRenderContext* G_RENDERCTX; 20 | extern dingus::CInputContext* G_INPUTCTX; 21 | 22 | 23 | const int GUI_X = 640; 24 | const int GUI_Y = 480; 25 | 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /testHDR/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /testHDR/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | 6 | 7 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, INT ) 8 | { 9 | try { 10 | CDemo* demo = new CDemo(); 11 | CDingusSystem* system = new CDingusSystem( *demo ); 12 | if( SUCCEEDED( system->create( hInst, false ) ) ) 13 | system->run(); 14 | delete demo; 15 | delete system; 16 | } catch( std::exception& e ) { 17 | std::string willExit = "\n\nThe application will now exit."; 18 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK ); 19 | return 0; 20 | } 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /testLotsOfGuys/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 6 | { 7 | pass P0 8 | { 9 | VertexShader = NULL; 10 | PixelShader = NULL; 11 | AlphaBlendEnable = False; 12 | CullMode = CW; 13 | ZEnable = True; 14 | ZWriteEnable = True; 15 | ZFunc = Less; 16 | } 17 | pass PLast { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /testLotsOfGuys/data/fx/lib/shared.fx: -------------------------------------------------------------------------------- 1 | // global parameters are here 2 | 3 | #ifndef __SHARED_FX 4 | #define __SHARED_FX 5 | 6 | // -------------------------------------------------------------------------- 7 | // camera 8 | 9 | shared float4x4 mView; 10 | shared float4x4 mProjection; 11 | shared float4x4 mViewProj; 12 | shared float3 vEye; 13 | shared float3 vCameraX; 14 | shared float3 vCameraY; 15 | 16 | // -------------------------------------------------------------------------- 17 | // light and shadows 18 | 19 | const float3 vLightDir = normalize(float3(-0.2,1,0.3)); 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testLotsOfGuys/src/DirectX.ico -------------------------------------------------------------------------------- /testLotsOfGuys/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | /** 7 | * Demo application. 8 | */ 9 | class CDemo : public CSystem, public IInputListener { 10 | public: 11 | CDemo(); 12 | 13 | // IDingusApplication 14 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 15 | 16 | virtual void initialize( IDingusAppContext& appContext ); 17 | virtual void shutdown(); 18 | virtual bool shouldFinish(); 19 | virtual bool shouldShowStats(); 20 | virtual void perform(); 21 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 22 | 23 | // IInputListener 24 | virtual void onInputEvent( const CInputEvent& event ); 25 | virtual void onInputStage(); 26 | }; 27 | 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/demo/DemoResources.h: -------------------------------------------------------------------------------- 1 | #ifndef __MYDEMO_RES_H 2 | #define __MYDEMO_RES_H 3 | 4 | #include 5 | 6 | 7 | extern SVector4 gScreenFixUVs; 8 | 9 | 10 | #define ANIM_FPS 30.0f 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/demo/IdlePlayer.h: -------------------------------------------------------------------------------- 1 | #ifndef __IDLE_PLAYER_H 2 | #define __IDLE_PLAYER_H 3 | 4 | class CComplexStuffEntity; 5 | 6 | 7 | struct IdleConfig { 8 | std::vector mAnims; 9 | }; 10 | 11 | void InitIdleConfig( IdleConfig& cfg ); 12 | 13 | // -------------------------------------------------------------------------- 14 | 15 | class IdlePlayer { 16 | public: 17 | IdlePlayer( const IdleConfig& cfg ); 18 | ~IdlePlayer(); 19 | 20 | void update( CComplexStuffEntity& character, time_value demoTime ); 21 | 22 | private: 23 | void startScrollerAnim( CComplexStuffEntity& character ); 24 | 25 | private: 26 | std::vector mAnimPlayCount; 27 | const IdleConfig* mCfg; 28 | 29 | // timing 30 | time_value mStartTime; 31 | time_value mLocalTime; // time since started 32 | 33 | float mDefAnimPlayedTime; 34 | float mDefAnimPlayTime; 35 | }; 36 | 37 | 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testLotsOfGuys/src/logo.bmp -------------------------------------------------------------------------------- /testLotsOfGuys/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Globals.h" 4 | 5 | dingus::CRenderContext* G_RENDERCTX = NULL; 6 | dingus::CInputContext* G_INPUTCTX = NULL; 7 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/system/Globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | using namespace dingus; 20 | 21 | extern dingus::CRenderContext* G_RENDERCTX; 22 | extern dingus::CInputContext* G_INPUTCTX; 23 | 24 | 25 | const int GUI_X = 640; 26 | const int GUI_Y = 480; 27 | 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /testLotsOfGuys/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | 6 | 7 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, INT ) 8 | { 9 | try { 10 | CDemo* demo = new CDemo(); 11 | CDingusSystem* system = new CDingusSystem( *demo ); 12 | if( SUCCEEDED( system->create( hInst, false ) ) ) 13 | system->run(); 14 | delete demo; 15 | delete system; 16 | } catch( std::exception& e ) { 17 | std::string willExit = "\n\nThe application will now exit."; 18 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK ); 19 | return 0; 20 | } 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /testPerspShadows/data/fx/caster.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | #include "lib/shadowmap.fx" 4 | 5 | float4x4 mWVP; 6 | 7 | #ifdef DST_SHADOWS 8 | SPos vsMain( SPos i ) 9 | { 10 | SPos o; 11 | o.pos = mul( i.pos, mWVP ); 12 | return o; 13 | } 14 | #else 15 | SPosZ vsMain( SPos i ) 16 | { 17 | SPosZ o; 18 | o.pos = mul( i.pos, mWVP ); 19 | o.z = gShadowZ( o.pos ); 20 | return o; 21 | } 22 | #endif 23 | 24 | technique tec20 25 | { 26 | pass P0 { 27 | VertexShader = compile vs_1_1 vsMain(); 28 | #ifdef DST_SHADOWS 29 | PixelShader = compile ps_1_1 psCasterMain(); 30 | #else 31 | PixelShader = compile ps_2_0 psCasterMain(); 32 | #endif 33 | } 34 | RESTORE_PASS 35 | } 36 | -------------------------------------------------------------------------------- /testPerspShadows/data/fx/debug.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | SPosCol vsMain( SPosNCol i ) { 5 | SPosCol o; 6 | o.pos = mul( i.pos, mViewProj ); 7 | //float diffuse = saturate( dot( i.normal, -vLightDir ) ) * 0.4 + 0.6; 8 | float diffuse = 1.0; 9 | o.color.rgb = i.color.rgb * diffuse; 10 | o.color.a = i.color.a; 11 | return o; 12 | } 13 | 14 | technique tecFFP 15 | { 16 | pass PAlpha 17 | { 18 | VertexShader = compile vs_1_1 vsMain(); 19 | PixelShader = NULL; 20 | 21 | AlphaBlendEnable = True; 22 | SrcBlend = SrcAlpha; 23 | DestBlend = InvSrcAlpha; 24 | 25 | CullMode = None; 26 | ZWriteEnable = False; 27 | 28 | ColorOp[0] = SelectArg1; 29 | ColorArg1[0] = Diffuse; 30 | AlphaOp[0] = SelectArg1; 31 | AlphaArg1[0] = Diffuse; 32 | 33 | ColorOp[1] = Disable; 34 | AlphaOp[1] = Disable; 35 | } 36 | 37 | RESTORE_PASS 38 | } 39 | -------------------------------------------------------------------------------- /testPerspShadows/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 6 | { 7 | pass P0 8 | { 9 | VertexShader = NULL; 10 | PixelShader = NULL; 11 | AlphaBlendEnable = False; 12 | CullMode = CW; 13 | ZEnable = True; 14 | ZWriteEnable = True; 15 | ZFunc = Less; 16 | } 17 | pass PLast { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /testPerspShadows/data/fx/lib/shared.fx: -------------------------------------------------------------------------------- 1 | // global parameters are here 2 | 3 | #ifndef __SHARED_FX 4 | #define __SHARED_FX 5 | 6 | // -------------------------------------------------------------------------- 7 | // camera 8 | 9 | shared float4x4 mView; 10 | shared float4x4 mProjection; 11 | shared float4x4 mViewProj; 12 | shared float3 vEye; 13 | shared float3 vCameraX; 14 | shared float3 vCameraY; 15 | 16 | // -------------------------------------------------------------------------- 17 | // light and shadows 18 | 19 | #ifndef DST_SHADOWS 20 | static const float fShadowBias = 0.1; 21 | #endif 22 | 23 | sampler smpShadow : register(s4); 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /testPerspShadows/data/fx/zfill.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | float4x4 mWVP; 5 | 6 | SPos vsMain( SPos i ) 7 | { 8 | SPos o; 9 | o.pos = mul( i.pos, mWVP ); 10 | return o; 11 | } 12 | 13 | half4 psMain() : COLOR 14 | { 15 | return 0; 16 | } 17 | 18 | technique tec20 19 | { 20 | pass P0 { 21 | VertexShader = compile vs_1_1 vsMain(); 22 | PixelShader = compile ps_1_1 psMain(); 23 | } 24 | RESTORE_PASS 25 | } 26 | -------------------------------------------------------------------------------- /testPerspShadows/data/mesh/ConeBig.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testPerspShadows/data/mesh/ConeBig.dmesh -------------------------------------------------------------------------------- /testPerspShadows/data/mesh/FloorTileBig.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testPerspShadows/data/mesh/FloorTileBig.dmesh -------------------------------------------------------------------------------- /testPerspShadows/data/mesh/House.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testPerspShadows/data/mesh/House.dmesh -------------------------------------------------------------------------------- /testPerspShadows/data/mesh/Table.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testPerspShadows/data/mesh/Table.dmesh -------------------------------------------------------------------------------- /testPerspShadows/data/mesh/Torus.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testPerspShadows/data/mesh/Torus.dmesh -------------------------------------------------------------------------------- /testPerspShadows/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testPerspShadows/src/DirectX.ico -------------------------------------------------------------------------------- /testPerspShadows/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | /** 7 | * Demo application. 8 | */ 9 | class CDemo : public CSystem, public IInputListener { 10 | public: 11 | CDemo(); 12 | 13 | // IDingusApplication 14 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 15 | 16 | virtual void initialize( IDingusAppContext& appContext ); 17 | virtual void shutdown(); 18 | virtual bool shouldFinish(); 19 | virtual bool shouldShowStats(); 20 | virtual void perform(); 21 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 22 | 23 | // IInputListener 24 | virtual void onInputEvent( const CInputEvent& event ); 25 | virtual void onInputStage(); 26 | }; 27 | 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /testPerspShadows/src/demo/DemoResources.h: -------------------------------------------------------------------------------- 1 | #ifndef __MYDEMO_RES_H 2 | #define __MYDEMO_RES_H 3 | 4 | #include 5 | 6 | 7 | extern SVector4 gScreenFixUVs; 8 | 9 | 10 | /** Possible render modes. */ 11 | enum eRenderMode { 12 | RM_NORMAL = 0, 13 | RM_ZFILL, 14 | RM_CASTER, 15 | RMCOUNT 16 | }; 17 | extern const char* RMODE_PREFIX[RMCOUNT]; 18 | 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /testPerspShadows/src/demo/Hull.h: -------------------------------------------------------------------------------- 1 | #ifndef __HULL_H 2 | #define __HULL_H 3 | 4 | namespace dingus { class CDebugRenderer; class SPlane; } 5 | 6 | struct HullFace { 7 | std::vector v; 8 | }; 9 | struct HullObject { 10 | std::vector f; 11 | void clear() { f.clear(); } 12 | }; 13 | 14 | 15 | void CalculateFocusedLightHull( const SMatrix4x4& invViewProj, const SVector3& lightDir, const CAABox& sceneAABB, HullFace& points ); 16 | 17 | void ClipHullByAABB( HullObject& obj, const CAABox& box ); 18 | void ClipHullByPlane( HullObject& obj, const SPlane& A ); 19 | 20 | void DebugCalcFrustumHull( const SMatrix4x4& invViewProj, HullObject& obj ); 21 | void DebugRenderHull( const HullObject& obj, CDebugRenderer& dr, D3DCOLOR color ); 22 | 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /testPerspShadows/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testPerspShadows/src/logo.bmp -------------------------------------------------------------------------------- /testPerspShadows/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /testPerspShadows/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /testPerspShadows/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Globals.h" 4 | 5 | dingus::CRenderContext* G_RENDERCTX = NULL; 6 | dingus::CInputContext* G_INPUTCTX = NULL; 7 | -------------------------------------------------------------------------------- /testPerspShadows/src/system/Globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | using namespace dingus; 18 | 19 | extern dingus::CRenderContext* G_RENDERCTX; 20 | extern dingus::CInputContext* G_INPUTCTX; 21 | 22 | 23 | const int GUI_X = 640; 24 | const int GUI_Y = 480; 25 | 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /testPerspShadows/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /testPerspShadows/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | 6 | 7 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, INT ) 8 | { 9 | try { 10 | CDemo* demo = new CDemo(); 11 | CDingusSystem* system = new CDingusSystem( *demo ); 12 | if( SUCCEEDED( system->create( hInst, false ) ) ) 13 | system->run(); 14 | delete demo; 15 | delete system; 16 | } catch( std::exception& e ) { 17 | std::string willExit = "\n\nThe application will now exit."; 18 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK ); 19 | return 0; 20 | } 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /testShadows/data/fx/caster.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | #include "lib/shadowmap.fx" 4 | 5 | float4x4 mWVP; 6 | 7 | #ifdef DST_SHADOWS 8 | SPos vsMain( SPos i ) 9 | { 10 | SPos o; 11 | o.pos = mul( i.pos, mWVP ); 12 | return o; 13 | } 14 | #else 15 | SPosZ vsMain( SPos i ) 16 | { 17 | SPosZ o; 18 | o.pos = mul( i.pos, mWVP ); 19 | o.z = gShadowZ( o.pos ); 20 | return o; 21 | } 22 | #endif 23 | 24 | technique tec20 25 | { 26 | pass P0 { 27 | VertexShader = compile vs_1_1 vsMain(); 28 | #ifdef DST_SHADOWS 29 | PixelShader = compile ps_2_0 psCasterMain(); 30 | #else 31 | PixelShader = compile ps_1_1 psCasterMain(); 32 | #endif 33 | } 34 | RESTORE_PASS 35 | } 36 | -------------------------------------------------------------------------------- /testShadows/data/fx/debug.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | SPosCol vsMain( SPosNCol i ) { 5 | SPosCol o; 6 | o.pos = mul( i.pos, mViewProj ); 7 | //float diffuse = saturate( dot( i.normal, -vLightDir ) ) * 0.4 + 0.6; 8 | float diffuse = 1.0; 9 | o.color.rgb = i.color.rgb * diffuse; 10 | o.color.a = i.color.a; 11 | return o; 12 | } 13 | 14 | technique tecFFP 15 | { 16 | pass PAlpha 17 | { 18 | VertexShader = compile vs_1_1 vsMain(); 19 | PixelShader = NULL; 20 | 21 | AlphaBlendEnable = True; 22 | SrcBlend = SrcAlpha; 23 | DestBlend = InvSrcAlpha; 24 | 25 | CullMode = None; 26 | ZWriteEnable = False; 27 | 28 | ColorOp[0] = SelectArg1; 29 | ColorArg1[0] = Diffuse; 30 | AlphaOp[0] = SelectArg1; 31 | AlphaArg1[0] = Diffuse; 32 | 33 | ColorOp[1] = Disable; 34 | AlphaOp[1] = Disable; 35 | } 36 | 37 | RESTORE_PASS 38 | } 39 | -------------------------------------------------------------------------------- /testShadows/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 6 | { 7 | pass P0 8 | { 9 | VertexShader = NULL; 10 | PixelShader = NULL; 11 | AlphaBlendEnable = False; 12 | CullMode = CW; 13 | ZEnable = True; 14 | ZWriteEnable = True; 15 | ZFunc = Less; 16 | } 17 | pass PLast { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /testShadows/data/fx/lib/shared.fx: -------------------------------------------------------------------------------- 1 | // global parameters are here 2 | 3 | #ifndef __SHARED_FX 4 | #define __SHARED_FX 5 | 6 | // -------------------------------------------------------------------------- 7 | // camera 8 | 9 | shared float4x4 mView; 10 | shared float4x4 mProjection; 11 | shared float4x4 mViewProj; 12 | shared float3 vEye; 13 | shared float3 vCameraX; 14 | shared float3 vCameraY; 15 | 16 | // -------------------------------------------------------------------------- 17 | // light and shadows 18 | 19 | #ifndef DST_SHADOWS 20 | static const float fShadowBias = 0.1; 21 | #endif 22 | 23 | sampler smpShadow : register(s4); 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /testShadows/data/fx/zfill.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | float4x4 mWVP; 5 | 6 | SPos vsMain( SPos i ) 7 | { 8 | SPos o; 9 | o.pos = mul( i.pos, mWVP ); 10 | return o; 11 | } 12 | 13 | half4 psMain() : COLOR 14 | { 15 | return 0; 16 | } 17 | 18 | technique tec20 19 | { 20 | pass P0 { 21 | VertexShader = compile vs_1_1 vsMain(); 22 | PixelShader = compile ps_1_1 psMain(); 23 | } 24 | RESTORE_PASS 25 | } 26 | -------------------------------------------------------------------------------- /testShadows/data/mesh/Cone.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testShadows/data/mesh/Cone.dmesh -------------------------------------------------------------------------------- /testShadows/data/mesh/FloorTile.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testShadows/data/mesh/FloorTile.dmesh -------------------------------------------------------------------------------- /testShadows/data/mesh/Table.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testShadows/data/mesh/Table.dmesh -------------------------------------------------------------------------------- /testShadows/data/mesh/Teapot.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testShadows/data/mesh/Teapot.dmesh -------------------------------------------------------------------------------- /testShadows/data/mesh/Torus.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testShadows/data/mesh/Torus.dmesh -------------------------------------------------------------------------------- /testShadows/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testShadows/src/DirectX.ico -------------------------------------------------------------------------------- /testShadows/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | /** 7 | * Demo application. 8 | */ 9 | class CDemo : public CSystem, public IInputListener { 10 | public: 11 | CDemo(); 12 | 13 | // IDingusApplication 14 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 15 | 16 | virtual void initialize( IDingusAppContext& appContext ); 17 | virtual void shutdown(); 18 | virtual bool shouldFinish(); 19 | virtual bool shouldShowStats(); 20 | virtual void perform(); 21 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 22 | 23 | // IInputListener 24 | virtual void onInputEvent( const CInputEvent& event ); 25 | virtual void onInputStage(); 26 | }; 27 | 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /testShadows/src/demo/DemoResources.h: -------------------------------------------------------------------------------- 1 | #ifndef __MYDEMO_RES_H 2 | #define __MYDEMO_RES_H 3 | 4 | #include 5 | 6 | 7 | extern SVector4 gScreenFixUVs; 8 | 9 | 10 | /** Possible render modes. */ 11 | enum eRenderMode { 12 | RM_NORMAL = 0, 13 | RM_ZFILL, 14 | RM_CASTER, 15 | RMCOUNT 16 | }; 17 | extern const char* RMODE_PREFIX[RMCOUNT]; 18 | 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /testShadows/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testShadows/src/logo.bmp -------------------------------------------------------------------------------- /testShadows/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /testShadows/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /testShadows/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Globals.h" 4 | 5 | dingus::CRenderContext* G_RENDERCTX = NULL; 6 | dingus::CInputContext* G_INPUTCTX = NULL; 7 | -------------------------------------------------------------------------------- /testShadows/src/system/Globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | using namespace dingus; 18 | 19 | extern dingus::CRenderContext* G_RENDERCTX; 20 | extern dingus::CInputContext* G_INPUTCTX; 21 | 22 | 23 | const int GUI_X = 640; 24 | const int GUI_Y = 480; 25 | 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /testShadows/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /testShadows/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | 6 | 7 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, INT ) 8 | { 9 | try { 10 | CDemo* demo = new CDemo(); 11 | CDingusSystem* system = new CDingusSystem( *demo ); 12 | if( SUCCEEDED( system->create( hInst, false ) ) ) 13 | system->run(); 14 | delete demo; 15 | delete system; 16 | } catch( std::exception& e ) { 17 | std::string willExit = "\n\nThe application will now exit."; 18 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK ); 19 | return 0; 20 | } 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /testSoftShadows/data/fx/entity.fx: -------------------------------------------------------------------------------- 1 | #include "lib/shared.fx" 2 | #include "lib/structs.fx" 3 | 4 | float4x4 mWorld; 5 | float4x4 mWVP; 6 | 7 | 8 | SPosCol vsMain( SPosN i ) { 9 | SPosCol o; 10 | o.pos = mul( i.pos, mWVP ); 11 | float3 n = mul( i.normal, (float3x3)mWorld ); 12 | 13 | float diff = abs( dot( n, vLightDir ) ) * 0.7 + 0.3; 14 | o.color = diff; 15 | return o; 16 | } 17 | 18 | 19 | 20 | technique tecFFP 21 | { 22 | pass P0 { 23 | VertexShader = compile vs_1_1 vsMain(); 24 | PixelShader = NULL; 25 | CullMode = None; 26 | 27 | ColorOp[0] = SelectArg1; 28 | ColorArg1[0] = Diffuse; 29 | AlphaOp[0] = SelectArg1; 30 | AlphaArg1[0] = Diffuse; 31 | ColorOp[1] = Disable; 32 | AlphaOp[1] = Disable; 33 | } 34 | pass PLast { 35 | CullMode = ; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /testSoftShadows/data/fx/lib/global.fx: -------------------------------------------------------------------------------- 1 | // global effect as used by the framework 2 | 3 | #include "shared.fx" 4 | 5 | technique tec0 { 6 | pass P0 { 7 | AlphaBlendEnable = False; 8 | CullMode = ; 9 | ZFunc = Less; 10 | } 11 | pass PLast { 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /testSoftShadows/data/fx/lib/shadowmap.fx: -------------------------------------------------------------------------------- 1 | #ifndef __SHADOWMAP_FX 2 | #define __SHADOWMAP_FX 3 | 4 | #include "shared.fx" 5 | #include "structs.fx" 6 | 7 | static inline float gShadowZ( float4 wvppos ) { 8 | return wvppos.z * fShadowRangeScale + fShadowBias; 9 | } 10 | 11 | float4 psCasterMain( SPosZ i ) : COLOR { 12 | return i.z; 13 | } 14 | 15 | static inline void gShadowProj( in float4 wpos, out float2 ouv, out float oz ) { 16 | ouv = mul( wpos, mShadowProj ); 17 | oz = mul( wpos, mLightViewProj ).z * fShadowRangeScale; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /testSoftShadows/data/mesh/Box.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testSoftShadows/data/mesh/Box.dmesh -------------------------------------------------------------------------------- /testSoftShadows/data/mesh/Cylinder.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testSoftShadows/data/mesh/Cylinder.dmesh -------------------------------------------------------------------------------- /testSoftShadows/data/mesh/Table.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testSoftShadows/data/mesh/Table.dmesh -------------------------------------------------------------------------------- /testSoftShadows/data/mesh/Torus.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testSoftShadows/data/mesh/Torus.dmesh -------------------------------------------------------------------------------- /testSoftShadows/data/mesh/billboard.dmesh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testSoftShadows/data/mesh/billboard.dmesh -------------------------------------------------------------------------------- /testSoftShadows/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testSoftShadows/src/DirectX.ico -------------------------------------------------------------------------------- /testSoftShadows/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | /** 7 | * Demo application. 8 | */ 9 | class CDemo : public CSystem, public IInputListener { 10 | public: 11 | CDemo(); 12 | 13 | // IDingusApplication 14 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 15 | virtual void initialize( IDingusAppContext& appContext ); 16 | virtual void shutdown(); 17 | virtual bool shouldFinish(); 18 | virtual bool shouldShowStats(); 19 | virtual void perform(); 20 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 21 | 22 | // IInputListener 23 | virtual void onInputEvent( const CInputEvent& event ); 24 | virtual void onInputStage(); 25 | }; 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /testSoftShadows/src/demo/DemoResources.h: -------------------------------------------------------------------------------- 1 | #ifndef __MYDEMO_RES_H 2 | #define __MYDEMO_RES_H 3 | 4 | 5 | /** Possible render modes. */ 6 | enum eRenderMode { 7 | RM_NORMAL = 0, 8 | RM_CASTERSOFT, 9 | RMCOUNT 10 | }; 11 | 12 | const int SZ_SHADOW = 1024; 13 | 14 | #define RT_SHADOW "shadow" 15 | #define RT_SHADOWBLUR "shadowBlur" 16 | #define RT_SHADOWZ "shadowZ" 17 | 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /testSoftShadows/src/demo/MeshEntity.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "MeshEntity.h" 3 | 4 | 5 | // -------------------------------------------------------------------------- 6 | 7 | CMeshEntity::CMeshEntity( const std::string& meshName ) 8 | : mMesh(0) 9 | { 10 | mMesh = RGET_MESH(meshName); 11 | } 12 | -------------------------------------------------------------------------------- /testSoftShadows/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/testSoftShadows/src/logo.bmp -------------------------------------------------------------------------------- /testSoftShadows/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /testSoftShadows/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /testSoftShadows/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Globals.h" 4 | 5 | dingus::CRenderContext* G_RENDERCTX = NULL; 6 | dingus::CInputContext* G_INPUTCTX = NULL; 7 | -------------------------------------------------------------------------------- /testSoftShadows/src/system/Globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | using namespace dingus; 17 | 18 | extern dingus::CRenderContext* G_RENDERCTX; 19 | extern dingus::CInputContext* G_INPUTCTX; 20 | 21 | 22 | const int GUI_X = 640; 23 | const int GUI_Y = 480; 24 | 25 | 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /testSoftShadows/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /testSoftShadows/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | 6 | 7 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, INT ) 8 | { 9 | try { 10 | CDemo* demo = new CDemo(); 11 | CDingusSystem* system = new CDingusSystem( *demo ); 12 | if( SUCCEEDED( system->create( hInst, false ) ) ) 13 | system->run(); 14 | delete demo; 15 | delete system; 16 | } catch( std::exception& e ) { 17 | std::string willExit = "\n\nThe application will now exit."; 18 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK ); 19 | return 0; 20 | } 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /vaikairoks/data/words.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/vaikairoks/data/words.txt -------------------------------------------------------------------------------- /vaikairoks/src/DirectX.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/vaikairoks/src/DirectX.ico -------------------------------------------------------------------------------- /vaikairoks/src/demo/Demo.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_H 2 | #define __DEMO_H 3 | 4 | #include "../system/System.h" 5 | 6 | /** 7 | * Demo application. 8 | */ 9 | class CDemo : public CSystem, public IInputListener { 10 | public: 11 | CDemo(); 12 | 13 | // IDingusApplication 14 | virtual bool checkDevice( const CD3DDeviceCaps& caps, CD3DDeviceCaps::eVertexProcessing vproc, CD3DEnumErrors& errors ); 15 | virtual void initialize( IDingusAppContext& appContext ); 16 | virtual void shutdown(); 17 | virtual bool shouldFinish(); 18 | virtual bool shouldShowStats(); 19 | virtual void perform(); 20 | virtual bool msgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ); 21 | 22 | // IInputListener 23 | virtual void onInputEvent( const CInputEvent& event ); 24 | virtual void onInputStage(); 25 | 26 | private: 27 | void initLetters(); 28 | void nextLetter(); 29 | void fillLetterParams(); 30 | }; 31 | 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /vaikairoks/src/logo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aras-p/dingus/22ef90c2bf01afd53c0b5b045f4dd0b59fe83009/vaikairoks/src/logo.bmp -------------------------------------------------------------------------------- /vaikairoks/src/stdafx.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | // for precompiled headers 3 | -------------------------------------------------------------------------------- /vaikairoks/src/stdafx.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEMO_STDAFX_H 2 | #define __DEMO_STDAFX_H 3 | 4 | // precompiled headers stuff 5 | 6 | #include 7 | 8 | // some globals 9 | #include "system/Globals.h" 10 | 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /vaikairoks/src/system/Globals.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "Globals.h" 4 | 5 | dingus::CInputContext* G_INPUTCTX = NULL; 6 | -------------------------------------------------------------------------------- /vaikairoks/src/system/Globals.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLOBALS_H 2 | #define __GLOBALS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | using namespace dingus; 13 | 14 | extern dingus::CInputContext* G_INPUTCTX; 15 | 16 | 17 | const int GUI_X = 640; 18 | const int GUI_Y = 480; 19 | 20 | 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /vaikairoks/src/system/System.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __KERNEL_SYSTEM_H 3 | #define __KERNEL_SYSTEM_H 4 | 5 | #include 6 | 7 | namespace dingus { 8 | class IConsoleRenderingContext; 9 | class CD3DTextBoxConsoleRenderingContext; 10 | class CD3DFont; 11 | }; 12 | 13 | 14 | class CSystem : public IDingusApplication { 15 | public: 16 | virtual SAppStartupParams getStartupParams(); 17 | 18 | virtual IConsoleRenderingContext* createStdConsoleCtx( HWND hwnd ); 19 | 20 | virtual void setupBundles( const std::string& dataPath, dingus::CReloadableBundleManager& reloadManager ); 21 | virtual void setupContexts( HWND hwnd ); 22 | virtual void destroyContexts(); 23 | virtual void destroyBundles(); 24 | 25 | protected: 26 | HWND mHwnd; 27 | }; 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /vaikairoks/src/system/main.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | 3 | #include "../demo/Demo.h" 4 | #include 5 | 6 | 7 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, INT ) 8 | { 9 | try { 10 | CDemo* demo = new CDemo(); 11 | CDingusSystem* system = new CDingusSystem( *demo ); 12 | if( SUCCEEDED( system->create( hInst, false ) ) ) 13 | system->run(); 14 | delete demo; 15 | delete system; 16 | } catch( std::exception& e ) { 17 | std::string willExit = "\n\nThe application will now exit."; 18 | MessageBox( 0, (e.what()+willExit).c_str(), "Fatal error", MB_OK ); 19 | return 0; 20 | } 21 | return 0; 22 | } 23 | --------------------------------------------------------------------------------