├── .gitignore ├── LICENSE ├── Urho3D-1.32 ├── Build │ └── Engine │ │ └── Urho3D.h └── Source │ ├── Engine │ ├── Audio │ │ ├── Audio.h │ │ ├── AudioDefs.h │ │ ├── BufferedSoundStream.h │ │ ├── OggVorbisSoundStream.h │ │ ├── Sound.h │ │ ├── SoundListener.h │ │ ├── SoundSource.h │ │ ├── SoundSource3D.h │ │ └── SoundStream.h │ ├── Container │ │ ├── Allocator.h │ │ ├── ArrayPtr.h │ │ ├── DebugNew.h │ │ ├── ForEach.h │ │ ├── Hash.h │ │ ├── HashBase.h │ │ ├── HashMap.h │ │ ├── HashSet.h │ │ ├── HashTable.h │ │ ├── LinkedList.h │ │ ├── List.h │ │ ├── ListBase.h │ │ ├── Pair.h │ │ ├── Ptr.h │ │ ├── RefCounted.h │ │ ├── Sort.h │ │ ├── Str.h │ │ ├── Swap.h │ │ ├── Vector.h │ │ └── VectorBase.h │ ├── Core │ │ ├── Attribute.h │ │ ├── Condition.h │ │ ├── Context.h │ │ ├── CoreEvents.h │ │ ├── Main.h │ │ ├── MiniDump.h │ │ ├── Mutex.h │ │ ├── Object.h │ │ ├── ProcessUtils.h │ │ ├── Profiler.h │ │ ├── Spline.h │ │ ├── StringUtils.h │ │ ├── Thread.h │ │ ├── Timer.h │ │ ├── Variant.h │ │ └── WorkQueue.h │ ├── Engine │ │ ├── Application.h │ │ ├── Console.h │ │ ├── DebugHud.h │ │ ├── Engine.h │ │ └── EngineEvents.h │ ├── Graphics │ │ ├── AnimatedModel.h │ │ ├── Animation.h │ │ ├── AnimationController.h │ │ ├── AnimationState.h │ │ ├── Batch.h │ │ ├── BillboardSet.h │ │ ├── Camera.h │ │ ├── CustomGeometry.h │ │ ├── DebugRenderer.h │ │ ├── DecalSet.h │ │ ├── Direct3D9 │ │ │ ├── D3D9GPUObject.h │ │ │ ├── D3D9Graphics.h │ │ │ ├── D3D9GraphicsImpl.h │ │ │ ├── D3D9IndexBuffer.h │ │ │ ├── D3D9RenderSurface.h │ │ │ ├── D3D9ShaderVariation.h │ │ │ ├── D3D9Texture.h │ │ │ ├── D3D9Texture2D.h │ │ │ ├── D3D9Texture3D.h │ │ │ ├── D3D9TextureCube.h │ │ │ ├── D3D9VertexBuffer.h │ │ │ └── D3D9VertexDeclaration.h │ │ ├── Drawable.h │ │ ├── DrawableEvents.h │ │ ├── GPUObject.h │ │ ├── Geometry.h │ │ ├── Graphics.h │ │ ├── GraphicsDefs.h │ │ ├── GraphicsEvents.h │ │ ├── GraphicsImpl.h │ │ ├── IndexBuffer.h │ │ ├── Light.h │ │ ├── Material.h │ │ ├── Model.h │ │ ├── OcclusionBuffer.h │ │ ├── Octree.h │ │ ├── OctreeQuery.h │ │ ├── OpenGL │ │ │ ├── OGLGPUObject.h │ │ │ ├── OGLGraphics.h │ │ │ ├── OGLGraphicsImpl.h │ │ │ ├── OGLIndexBuffer.h │ │ │ ├── OGLRenderSurface.h │ │ │ ├── OGLShaderProgram.h │ │ │ ├── OGLShaderVariation.h │ │ │ ├── OGLTexture.h │ │ │ ├── OGLTexture2D.h │ │ │ ├── OGLTexture3D.h │ │ │ ├── OGLTextureCube.h │ │ │ └── OGLVertexBuffer.h │ │ ├── ParticleEffect.h │ │ ├── ParticleEmitter.h │ │ ├── RenderPath.h │ │ ├── RenderSurface.h │ │ ├── Renderer.h │ │ ├── Shader.h │ │ ├── ShaderPrecache.h │ │ ├── ShaderProgram.h │ │ ├── ShaderVariation.h │ │ ├── Skeleton.h │ │ ├── Skybox.h │ │ ├── StaticModel.h │ │ ├── StaticModelGroup.h │ │ ├── Tangent.h │ │ ├── Technique.h │ │ ├── Terrain.h │ │ ├── TerrainPatch.h │ │ ├── Texture.h │ │ ├── Texture2D.h │ │ ├── Texture3D.h │ │ ├── TextureCube.h │ │ ├── VertexBuffer.h │ │ ├── VertexDeclaration.h │ │ ├── View.h │ │ ├── Viewport.h │ │ └── Zone.h │ ├── IO │ │ ├── Compression.h │ │ ├── Deserializer.h │ │ ├── File.h │ │ ├── FileSystem.h │ │ ├── FileWatcher.h │ │ ├── IOEvents.h │ │ ├── Log.h │ │ ├── MacFileWatcher.h │ │ ├── MemoryBuffer.h │ │ ├── PackageFile.h │ │ ├── RWOpsWrapper.h │ │ ├── Serializer.h │ │ └── VectorBuffer.h │ ├── Input │ │ ├── Input.h │ │ └── InputEvents.h │ ├── LuaScript │ │ ├── LuaFile.h │ │ ├── LuaFunction.h │ │ ├── LuaScript.h │ │ ├── LuaScriptInstance.h │ │ └── ToluaUtils.h │ ├── Math │ │ ├── AreaAllocator.h │ │ ├── BoundingBox.h │ │ ├── Color.h │ │ ├── Frustum.h │ │ ├── MathDefs.h │ │ ├── Matrix3.h │ │ ├── Matrix3x4.h │ │ ├── Matrix4.h │ │ ├── Plane.h │ │ ├── Polyhedron.h │ │ ├── Quaternion.h │ │ ├── Random.h │ │ ├── Ray.h │ │ ├── Rect.h │ │ ├── Sphere.h │ │ ├── StringHash.h │ │ ├── Vector2.h │ │ ├── Vector3.h │ │ └── Vector4.h │ ├── Navigation │ │ ├── Navigable.h │ │ ├── NavigationMesh.h │ │ └── OffMeshConnection.h │ ├── Network │ │ ├── Connection.h │ │ ├── Controls.h │ │ ├── HttpRequest.h │ │ ├── Network.h │ │ ├── NetworkEvents.h │ │ ├── NetworkPriority.h │ │ └── Protocol.h │ ├── Physics │ │ ├── CollisionShape.h │ │ ├── Constraint.h │ │ ├── PhysicsEvents.h │ │ ├── PhysicsUtils.h │ │ ├── PhysicsWorld.h │ │ └── RigidBody.h │ ├── Precompiled.h │ ├── Resource │ │ ├── BackgroundLoader.h │ │ ├── Decompress.h │ │ ├── Image.h │ │ ├── JSONFile.h │ │ ├── JSONValue.h │ │ ├── PListFile.h │ │ ├── Resource.h │ │ ├── ResourceCache.h │ │ ├── ResourceEvents.h │ │ ├── XMLElement.h │ │ └── XMLFile.h │ ├── Revision.h │ ├── Scene │ │ ├── Animatable.h │ │ ├── AnimationDefs.h │ │ ├── Component.h │ │ ├── LogicComponent.h │ │ ├── Node.h │ │ ├── ObjectAnimation.h │ │ ├── ReplicationState.h │ │ ├── Scene.h │ │ ├── SceneEvents.h │ │ ├── SceneResolver.h │ │ ├── Serializable.h │ │ ├── SmoothedTransform.h │ │ ├── SplinePath.h │ │ ├── UnknownComponent.h │ │ ├── ValueAnimation.h │ │ └── ValueAnimationInfo.h │ ├── Script │ │ ├── APITemplates.h │ │ ├── Addons.h │ │ ├── Script.h │ │ ├── ScriptAPI.h │ │ ├── ScriptEventListener.h │ │ ├── ScriptFile.h │ │ └── ScriptInstance.h │ ├── UI │ │ ├── BorderImage.h │ │ ├── Button.h │ │ ├── CheckBox.h │ │ ├── Cursor.h │ │ ├── DropDownList.h │ │ ├── FileSelector.h │ │ ├── Font.h │ │ ├── FontFace.h │ │ ├── FontFaceBitmap.h │ │ ├── FontFaceFreeType.h │ │ ├── LineEdit.h │ │ ├── ListView.h │ │ ├── Menu.h │ │ ├── MessageBox.h │ │ ├── ScrollBar.h │ │ ├── ScrollView.h │ │ ├── Slider.h │ │ ├── Sprite.h │ │ ├── Text.h │ │ ├── Text3D.h │ │ ├── ToolTip.h │ │ ├── UI.h │ │ ├── UIBatch.h │ │ ├── UIElement.h │ │ ├── UIEvents.h │ │ ├── View3D.h │ │ └── Window.h │ └── Urho2D │ │ ├── AnimatedSprite2D.h │ │ ├── Animation2D.h │ │ ├── AnimationSet2D.h │ │ ├── CollisionBox2D.h │ │ ├── CollisionChain2D.h │ │ ├── CollisionCircle2D.h │ │ ├── CollisionEdge2D.h │ │ ├── CollisionPolygon2D.h │ │ ├── CollisionShape2D.h │ │ ├── Constraint2D.h │ │ ├── ConstraintDistance2D.h │ │ ├── ConstraintFriction2D.h │ │ ├── ConstraintGear2D.h │ │ ├── ConstraintMotor2D.h │ │ ├── ConstraintMouse2D.h │ │ ├── ConstraintPrismatic2D.h │ │ ├── ConstraintPulley2D.h │ │ ├── ConstraintRevolute2D.h │ │ ├── ConstraintRope2D.h │ │ ├── ConstraintWeld2D.h │ │ ├── ConstraintWheel2D.h │ │ ├── Drawable2D.h │ │ ├── DrawableProxy2D.h │ │ ├── MaterialCache2D.h │ │ ├── ParticleEffect2D.h │ │ ├── ParticleEmitter2D.h │ │ ├── PhysicsEvents2D.h │ │ ├── PhysicsUtils2D.h │ │ ├── PhysicsWorld2D.h │ │ ├── RigidBody2D.h │ │ ├── Sprite2D.h │ │ ├── SpriteSheet2D.h │ │ ├── StaticSprite2D.h │ │ ├── TileMap2D.h │ │ ├── TileMapDefs2D.h │ │ ├── TileMapLayer2D.h │ │ ├── TmxFile2D.h │ │ └── Urho2D.h │ └── ThirdParty │ ├── AngelScript │ └── include │ │ └── angelscript.h │ ├── Box2D │ └── Box2D │ │ ├── Box2D.h │ │ ├── Collision │ │ ├── Shapes │ │ │ ├── b2ChainShape.h │ │ │ ├── b2CircleShape.h │ │ │ ├── b2EdgeShape.h │ │ │ ├── b2PolygonShape.h │ │ │ └── b2Shape.h │ │ ├── b2BroadPhase.h │ │ ├── b2Collision.h │ │ ├── b2Distance.h │ │ ├── b2DynamicTree.h │ │ └── b2TimeOfImpact.h │ │ ├── Common │ │ ├── b2BlockAllocator.h │ │ ├── b2Draw.h │ │ ├── b2GrowableStack.h │ │ ├── b2Math.h │ │ ├── b2Settings.h │ │ ├── b2StackAllocator.h │ │ └── b2Timer.h │ │ ├── Dynamics │ │ ├── Contacts │ │ │ ├── b2ChainAndCircleContact.h │ │ │ ├── b2ChainAndPolygonContact.h │ │ │ ├── b2CircleContact.h │ │ │ ├── b2Contact.h │ │ │ ├── b2ContactSolver.h │ │ │ ├── b2EdgeAndCircleContact.h │ │ │ ├── b2EdgeAndPolygonContact.h │ │ │ ├── b2PolygonAndCircleContact.h │ │ │ └── b2PolygonContact.h │ │ ├── Joints │ │ │ ├── b2DistanceJoint.h │ │ │ ├── b2FrictionJoint.h │ │ │ ├── b2GearJoint.h │ │ │ ├── b2Joint.h │ │ │ ├── b2MotorJoint.h │ │ │ ├── b2MouseJoint.h │ │ │ ├── b2PrismaticJoint.h │ │ │ ├── b2PulleyJoint.h │ │ │ ├── b2RevoluteJoint.h │ │ │ ├── b2RopeJoint.h │ │ │ ├── b2WeldJoint.h │ │ │ └── b2WheelJoint.h │ │ ├── b2Body.h │ │ ├── b2ContactManager.h │ │ ├── b2Fixture.h │ │ ├── b2Island.h │ │ ├── b2TimeStep.h │ │ ├── b2World.h │ │ └── b2WorldCallbacks.h │ │ └── Rope │ │ └── b2Rope.h │ ├── Bullet │ └── src │ │ ├── Bullet-C-Api.h │ │ ├── BulletCollision │ │ ├── BroadphaseCollision │ │ │ ├── btAxisSweep3.h │ │ │ ├── btBroadphaseInterface.h │ │ │ ├── btBroadphaseProxy.h │ │ │ ├── btCollisionAlgorithm.h │ │ │ ├── btDbvt.h │ │ │ ├── btDbvtBroadphase.h │ │ │ ├── btDispatcher.h │ │ │ ├── btMultiSapBroadphase.h │ │ │ ├── btOverlappingPairCache.h │ │ │ ├── btOverlappingPairCallback.h │ │ │ ├── btQuantizedBvh.h │ │ │ └── btSimpleBroadphase.h │ │ ├── CollisionDispatch │ │ │ ├── SphereTriangleDetector.h │ │ │ ├── btActivatingCollisionAlgorithm.h │ │ │ ├── btBox2dBox2dCollisionAlgorithm.h │ │ │ ├── btBoxBoxCollisionAlgorithm.h │ │ │ ├── btBoxBoxDetector.h │ │ │ ├── btCollisionConfiguration.h │ │ │ ├── btCollisionCreateFunc.h │ │ │ ├── btCollisionDispatcher.h │ │ │ ├── btCollisionObject.h │ │ │ ├── btCollisionObjectWrapper.h │ │ │ ├── btCollisionWorld.h │ │ │ ├── btCompoundCollisionAlgorithm.h │ │ │ ├── btCompoundCompoundCollisionAlgorithm.h │ │ │ ├── btConvex2dConvex2dAlgorithm.h │ │ │ ├── btConvexConcaveCollisionAlgorithm.h │ │ │ ├── btConvexConvexAlgorithm.h │ │ │ ├── btConvexPlaneCollisionAlgorithm.h │ │ │ ├── btDefaultCollisionConfiguration.h │ │ │ ├── btEmptyCollisionAlgorithm.h │ │ │ ├── btGhostObject.h │ │ │ ├── btHashedSimplePairCache.h │ │ │ ├── btInternalEdgeUtility.h │ │ │ ├── btManifoldResult.h │ │ │ ├── btSimulationIslandManager.h │ │ │ ├── btSphereBoxCollisionAlgorithm.h │ │ │ ├── btSphereSphereCollisionAlgorithm.h │ │ │ ├── btSphereTriangleCollisionAlgorithm.h │ │ │ └── btUnionFind.h │ │ ├── CollisionShapes │ │ │ ├── btBox2dShape.h │ │ │ ├── btBoxShape.h │ │ │ ├── btBvhTriangleMeshShape.h │ │ │ ├── btCapsuleShape.h │ │ │ ├── btCollisionMargin.h │ │ │ ├── btCollisionShape.h │ │ │ ├── btCompoundShape.h │ │ │ ├── btConcaveShape.h │ │ │ ├── btConeShape.h │ │ │ ├── btConvex2dShape.h │ │ │ ├── btConvexHullShape.h │ │ │ ├── btConvexInternalShape.h │ │ │ ├── btConvexPointCloudShape.h │ │ │ ├── btConvexPolyhedron.h │ │ │ ├── btConvexShape.h │ │ │ ├── btConvexTriangleMeshShape.h │ │ │ ├── btCylinderShape.h │ │ │ ├── btEmptyShape.h │ │ │ ├── btHeightfieldTerrainShape.h │ │ │ ├── btMaterial.h │ │ │ ├── btMinkowskiSumShape.h │ │ │ ├── btMultiSphereShape.h │ │ │ ├── btMultimaterialTriangleMeshShape.h │ │ │ ├── btOptimizedBvh.h │ │ │ ├── btPolyhedralConvexShape.h │ │ │ ├── btScaledBvhTriangleMeshShape.h │ │ │ ├── btShapeHull.h │ │ │ ├── btSphereShape.h │ │ │ ├── btStaticPlaneShape.h │ │ │ ├── btStridingMeshInterface.h │ │ │ ├── btTetrahedronShape.h │ │ │ ├── btTriangleBuffer.h │ │ │ ├── btTriangleCallback.h │ │ │ ├── btTriangleIndexVertexArray.h │ │ │ ├── btTriangleIndexVertexMaterialArray.h │ │ │ ├── btTriangleInfoMap.h │ │ │ ├── btTriangleMesh.h │ │ │ ├── btTriangleMeshShape.h │ │ │ ├── btTriangleShape.h │ │ │ └── btUniformScalingShape.h │ │ ├── Gimpact │ │ │ ├── btBoxCollision.h │ │ │ ├── btClipPolygon.h │ │ │ ├── btCompoundFromGimpact.h │ │ │ ├── btContactProcessing.h │ │ │ ├── btGImpactBvh.h │ │ │ ├── btGImpactCollisionAlgorithm.h │ │ │ ├── btGImpactMassUtil.h │ │ │ ├── btGImpactQuantizedBvh.h │ │ │ ├── btGImpactShape.h │ │ │ ├── btGenericPoolAllocator.h │ │ │ ├── btGeometryOperations.h │ │ │ ├── btQuantization.h │ │ │ ├── btTriangleShapeEx.h │ │ │ ├── gim_array.h │ │ │ ├── gim_basic_geometry_operations.h │ │ │ ├── gim_bitset.h │ │ │ ├── gim_box_collision.h │ │ │ ├── gim_box_set.h │ │ │ ├── gim_clip_polygon.h │ │ │ ├── gim_contact.h │ │ │ ├── gim_geom_types.h │ │ │ ├── gim_geometry.h │ │ │ ├── gim_hash_table.h │ │ │ ├── gim_linear_math.h │ │ │ ├── gim_math.h │ │ │ ├── gim_memory.h │ │ │ ├── gim_radixsort.h │ │ │ └── gim_tri_collision.h │ │ └── NarrowPhaseCollision │ │ │ ├── btContinuousConvexCollision.h │ │ │ ├── btConvexCast.h │ │ │ ├── btConvexPenetrationDepthSolver.h │ │ │ ├── btDiscreteCollisionDetectorInterface.h │ │ │ ├── btGjkConvexCast.h │ │ │ ├── btGjkEpa2.h │ │ │ ├── btGjkEpaPenetrationDepthSolver.h │ │ │ ├── btGjkPairDetector.h │ │ │ ├── btManifoldPoint.h │ │ │ ├── btMinkowskiPenetrationDepthSolver.h │ │ │ ├── btPersistentManifold.h │ │ │ ├── btPointCollector.h │ │ │ ├── btPolyhedralContactClipping.h │ │ │ ├── btRaycastCallback.h │ │ │ ├── btSimplexSolverInterface.h │ │ │ ├── btSubSimplexConvexCast.h │ │ │ └── btVoronoiSimplexSolver.h │ │ ├── BulletDynamics │ │ ├── Character │ │ │ ├── btCharacterControllerInterface.h │ │ │ └── btKinematicCharacterController.h │ │ ├── ConstraintSolver │ │ │ ├── btConeTwistConstraint.h │ │ │ ├── btConstraintSolver.h │ │ │ ├── btContactConstraint.h │ │ │ ├── btContactSolverInfo.h │ │ │ ├── btFixedConstraint.h │ │ │ ├── btGearConstraint.h │ │ │ ├── btGeneric6DofConstraint.h │ │ │ ├── btGeneric6DofSpringConstraint.h │ │ │ ├── btHinge2Constraint.h │ │ │ ├── btHingeConstraint.h │ │ │ ├── btJacobianEntry.h │ │ │ ├── btPoint2PointConstraint.h │ │ │ ├── btSequentialImpulseConstraintSolver.h │ │ │ ├── btSliderConstraint.h │ │ │ ├── btSolve2LinearConstraint.h │ │ │ ├── btSolverBody.h │ │ │ ├── btSolverConstraint.h │ │ │ ├── btTypedConstraint.h │ │ │ └── btUniversalConstraint.h │ │ ├── Dynamics │ │ │ ├── btActionInterface.h │ │ │ ├── btDiscreteDynamicsWorld.h │ │ │ ├── btDynamicsWorld.h │ │ │ ├── btRigidBody.h │ │ │ └── btSimpleDynamicsWorld.h │ │ ├── Featherstone │ │ │ ├── btMultiBody.h │ │ │ ├── btMultiBodyConstraint.h │ │ │ ├── btMultiBodyConstraintSolver.h │ │ │ ├── btMultiBodyDynamicsWorld.h │ │ │ ├── btMultiBodyJointLimitConstraint.h │ │ │ ├── btMultiBodyJointMotor.h │ │ │ ├── btMultiBodyLink.h │ │ │ ├── btMultiBodyLinkCollider.h │ │ │ ├── btMultiBodyPoint2Point.h │ │ │ └── btMultiBodySolverConstraint.h │ │ ├── MLCPSolvers │ │ │ ├── btDantzigLCP.h │ │ │ ├── btDantzigSolver.h │ │ │ ├── btMLCPSolver.h │ │ │ ├── btMLCPSolverInterface.h │ │ │ ├── btPATHSolver.h │ │ │ └── btSolveProjectedGaussSeidel.h │ │ └── Vehicle │ │ │ ├── btRaycastVehicle.h │ │ │ ├── btVehicleRaycaster.h │ │ │ └── btWheelInfo.h │ │ ├── BulletSoftBody │ │ ├── btDefaultSoftBodySolver.h │ │ ├── btSoftBody.h │ │ ├── btSoftBodyConcaveCollisionAlgorithm.h │ │ ├── btSoftBodyData.h │ │ ├── btSoftBodyHelpers.h │ │ ├── btSoftBodyInternals.h │ │ ├── btSoftBodyRigidBodyCollisionConfiguration.h │ │ ├── btSoftBodySolverVertexBuffer.h │ │ ├── btSoftBodySolvers.h │ │ ├── btSoftRigidCollisionAlgorithm.h │ │ ├── btSoftRigidDynamicsWorld.h │ │ ├── btSoftSoftCollisionAlgorithm.h │ │ └── btSparseSDF.h │ │ ├── LinearMath │ │ ├── btAabbUtil2.h │ │ ├── btAlignedAllocator.h │ │ ├── btAlignedObjectArray.h │ │ ├── btConvexHull.h │ │ ├── btConvexHullComputer.h │ │ ├── btDefaultMotionState.h │ │ ├── btGeometryUtil.h │ │ ├── btGrahamScan2dConvexHull.h │ │ ├── btHashMap.h │ │ ├── btIDebugDraw.h │ │ ├── btList.h │ │ ├── btMatrix3x3.h │ │ ├── btMatrixX.h │ │ ├── btMinMax.h │ │ ├── btMotionState.h │ │ ├── btPolarDecomposition.h │ │ ├── btPoolAllocator.h │ │ ├── btQuadWord.h │ │ ├── btQuaternion.h │ │ ├── btQuickprof.h │ │ ├── btRandom.h │ │ ├── btScalar.h │ │ ├── btSerializer.h │ │ ├── btStackAlloc.h │ │ ├── btTransform.h │ │ ├── btTransformUtil.h │ │ └── btVector3.h │ │ ├── btBulletCollisionCommon.h │ │ └── btBulletDynamicsCommon.h │ ├── SDL │ └── include │ │ ├── SDL.h │ │ ├── SDL_assert.h │ │ ├── SDL_atomic.h │ │ ├── SDL_audio.h │ │ ├── SDL_bits.h │ │ ├── SDL_blendmode.h │ │ ├── SDL_clipboard.h │ │ ├── SDL_config.h │ │ ├── SDL_config_android.h │ │ ├── SDL_config_iphoneos.h │ │ ├── SDL_config_linux.h │ │ ├── SDL_config_macosx.h │ │ ├── SDL_config_minimal.h │ │ ├── SDL_config_pandora.h │ │ ├── SDL_config_psp.h │ │ ├── SDL_config_windows.h │ │ ├── SDL_config_winrt.h │ │ ├── SDL_config_wiz.h │ │ ├── SDL_copying.h │ │ ├── SDL_cpuinfo.h │ │ ├── SDL_egl.h │ │ ├── SDL_endian.h │ │ ├── SDL_error.h │ │ ├── SDL_events.h │ │ ├── SDL_filesystem.h │ │ ├── SDL_gamecontroller.h │ │ ├── SDL_gesture.h │ │ ├── SDL_haptic.h │ │ ├── SDL_hints.h │ │ ├── SDL_joystick.h │ │ ├── SDL_keyboard.h │ │ ├── SDL_keycode.h │ │ ├── SDL_loadso.h │ │ ├── SDL_log.h │ │ ├── SDL_main.h │ │ ├── SDL_messagebox.h │ │ ├── SDL_mouse.h │ │ ├── SDL_mutex.h │ │ ├── SDL_name.h │ │ ├── SDL_opengl.h │ │ ├── SDL_opengles.h │ │ ├── SDL_opengles2.h │ │ ├── SDL_pixels.h │ │ ├── SDL_platform.h │ │ ├── SDL_power.h │ │ ├── SDL_quit.h │ │ ├── SDL_rect.h │ │ ├── SDL_render.h │ │ ├── SDL_revision.h │ │ ├── SDL_rwops.h │ │ ├── SDL_scancode.h │ │ ├── SDL_shape.h │ │ ├── SDL_stdinc.h │ │ ├── SDL_surface.h │ │ ├── SDL_system.h │ │ ├── SDL_syswm.h │ │ ├── SDL_test.h │ │ ├── SDL_test_assert.h │ │ ├── SDL_test_common.h │ │ ├── SDL_test_compare.h │ │ ├── SDL_test_crc32.h │ │ ├── SDL_test_font.h │ │ ├── SDL_test_fuzzer.h │ │ ├── SDL_test_harness.h │ │ ├── SDL_test_images.h │ │ ├── SDL_test_log.h │ │ ├── SDL_test_md5.h │ │ ├── SDL_test_random.h │ │ ├── SDL_thread.h │ │ ├── SDL_timer.h │ │ ├── SDL_touch.h │ │ ├── SDL_types.h │ │ ├── SDL_version.h │ │ ├── SDL_video.h │ │ ├── begin_code.h │ │ └── close_code.h │ └── kNet │ └── include │ ├── kNet.h │ ├── kNet │ ├── 64BitAllocDebugger.h │ ├── Alignment.h │ ├── Allocator.h │ ├── Array.h │ ├── Atomics.h │ ├── BasicSerializedDataTypes.h │ ├── BitOps.h │ ├── Clock.h │ ├── DataDeserializer.h │ ├── DataSerializer.h │ ├── Datagram.h │ ├── DebugMemoryLeakCheck.h │ ├── EndPoint.h │ ├── Event.h │ ├── EventArray.h │ ├── FragmentedTransferManager.h │ ├── IMessageHandler.h │ ├── INetworkServerListener.h │ ├── LockFreePoolAllocator.h │ ├── Lockable.h │ ├── MaxHeap.h │ ├── MessageConnection.h │ ├── MessageListParser.h │ ├── NetException.h │ ├── Network.h │ ├── NetworkLogging.h │ ├── NetworkMessage.h │ ├── NetworkServer.h │ ├── NetworkSimulator.h │ ├── NetworkWorkerThread.h │ ├── OrderedHashTable.h │ ├── PolledTimer.h │ ├── RingBuffer.h │ ├── SequentialIntegerSet.h │ ├── SerializationStructCompiler.h │ ├── SerializedDataIterator.h │ ├── SharedPtr.h │ ├── Socket.h │ ├── Sort.h │ ├── SortCmp.h │ ├── StatsEventHierarchy.h │ ├── StdCMallocHeap.h │ ├── TCPMessageConnection.h │ ├── Thread.h │ ├── Types.h │ ├── UDPMessageConnection.h │ ├── VLEPacker.h │ ├── WaitFreeQueue.h │ └── win32 │ │ └── WS2Include.h │ ├── kNetBuildConfig.h │ └── kNetFwd.h ├── examples ├── .gitignore ├── character.nim ├── hello.nim ├── huge.nim ├── modeltester.nim ├── mush.nim ├── nim.cfg ├── particle.nim ├── sample.nim └── vcc.cfg ├── headers ├── Audio │ ├── Audio.h │ ├── AudioDefs.h │ ├── BufferedSoundStream.h │ ├── OggVorbisSoundStream.h │ ├── Sound.h │ ├── SoundListener.h │ ├── SoundSource.h │ ├── SoundSource3D.h │ └── SoundStream.h ├── Container │ ├── Allocator.h │ ├── ArrayPtr.h │ ├── ForEach.h │ ├── Hash.h │ ├── HashBase.h │ ├── HashMap.h │ ├── HashSet.h │ ├── HashTable.h │ ├── LinkedList.h │ ├── List.h │ ├── ListBase.h │ ├── Pair.h │ ├── Ptr.h │ ├── RefCounted.h │ ├── Sort.h │ ├── Str.h │ ├── Vector.h │ └── VectorBase.h ├── Core │ ├── Attribute.h │ ├── Condition.h │ ├── Context.h │ ├── CoreEvents.h │ ├── MiniDump.h │ ├── Mutex.h │ ├── Object.h │ ├── ProcessUtils.h │ ├── Profiler.h │ ├── Spline.h │ ├── StringUtils.h │ ├── Thread.h │ ├── Timer.h │ ├── Variant.h │ └── WorkQueue.h ├── Engine │ ├── Application.h │ ├── Console.h │ ├── DebugHud.h │ ├── Engine.h │ └── EngineEvents.h ├── Graphics │ ├── AnimatedModel.h │ ├── Animation.h │ ├── AnimationController.h │ ├── AnimationState.h │ ├── Batch.h │ ├── BillboardSet.h │ ├── Camera.h │ ├── CustomGeometry.h │ ├── DebugRenderer.h │ ├── DecalSet.h │ ├── Drawable.h │ ├── DrawableEvents.h │ ├── GPUObject.h │ ├── Geometry.h │ ├── Graphics.h │ ├── GraphicsDefs.h │ ├── GraphicsEvents.h │ ├── GraphicsImpl.h │ ├── IndexBuffer.h │ ├── Light.h │ ├── Material.h │ ├── Model.h │ ├── OcclusionBuffer.h │ ├── Octree.h │ ├── OctreeQuery.h │ ├── ParticleEffect.h │ ├── ParticleEmitter.h │ ├── RenderPath.h │ ├── RenderSurface.h │ ├── Renderer.h │ ├── Shader.h │ ├── ShaderPrecache.h │ ├── ShaderProgram.h │ ├── ShaderVariation.h │ ├── Skeleton.h │ ├── Skybox.h │ ├── StaticModel.h │ ├── StaticModelGroup.h │ ├── Tangent.h │ ├── Technique.h │ ├── Terrain.h │ ├── TerrainPatch.h │ ├── Texture.h │ ├── Texture2D.h │ ├── Texture3D.h │ ├── TextureCube.h │ ├── VertexBuffer.h │ ├── VertexDeclaration.h │ ├── View.h │ ├── Viewport.h │ └── Zone.h ├── IO │ ├── Compression.h │ ├── Deserializer.h │ ├── File.h │ ├── FileSystem.h │ ├── FileWatcher.h │ ├── IOEvents.h │ ├── Log.h │ ├── MacFileWatcher.h │ ├── MemoryBuffer.h │ ├── PackageFile.h │ ├── RWOpsWrapper.h │ ├── Serializer.h │ └── VectorBuffer.h ├── Input │ ├── Input.h │ └── InputEvents.h ├── LuaScript │ ├── LuaFile.h │ ├── LuaFunction.h │ ├── LuaScript.h │ ├── LuaScriptInstance.h │ └── ToluaUtils.h ├── Math │ ├── AreaAllocator.h │ ├── BoundingBox.h │ ├── Color.h │ ├── Frustum.h │ ├── MathDefs.h │ ├── Matrix3.h │ ├── Matrix3x4.h │ ├── Matrix4.h │ ├── Plane.h │ ├── Polyhedron.h │ ├── Quaternion.h │ ├── Random.h │ ├── Ray.h │ ├── Rect.h │ ├── Sphere.h │ ├── StringHash.h │ ├── Vector2.h │ ├── Vector3.h │ └── Vector4.h ├── Navigation │ ├── Navigable.h │ ├── NavigationMesh.h │ └── OffMeshConnection.h ├── Network │ ├── Connection.h │ ├── Controls.h │ ├── HttpRequest.h │ ├── Network.h │ ├── NetworkEvents.h │ ├── NetworkPriority.h │ └── Protocol.h ├── Physics │ ├── CollisionShape.h │ ├── Constraint.h │ ├── PhysicsEvents.h │ ├── PhysicsUtils.h │ ├── PhysicsWorld.h │ └── RigidBody.h ├── Resource │ ├── BackgroundLoader.h │ ├── Decompress.h │ ├── Image.h │ ├── JSONFile.h │ ├── JSONValue.h │ ├── PListFile.h │ ├── Resource.h │ ├── ResourceCache.h │ ├── ResourceEvents.h │ ├── XMLElement.h │ └── XMLFile.h ├── Scene │ ├── Animatable.h │ ├── AnimationDefs.h │ ├── Component.h │ ├── LogicComponent.h │ ├── Node.h │ ├── ObjectAnimation.h │ ├── ReplicationState.h │ ├── Scene.h │ ├── SceneEvents.h │ ├── SceneResolver.h │ ├── Serializable.h │ ├── SmoothedTransform.h │ ├── SplinePath.h │ ├── UnknownComponent.h │ ├── ValueAnimation.h │ └── ValueAnimationInfo.h ├── Script │ ├── Addons.h │ ├── Script.h │ ├── ScriptAPI.h │ ├── ScriptEventListener.h │ ├── ScriptFile.h │ └── ScriptInstance.h ├── UI │ ├── BorderImage.h │ ├── Button.h │ ├── CheckBox.h │ ├── Cursor.h │ ├── DropDownList.h │ ├── FileSelector.h │ ├── Font.h │ ├── FontFace.h │ ├── FontFaceBitmap.h │ ├── FontFaceFreeType.h │ ├── LineEdit.h │ ├── ListView.h │ ├── Menu.h │ ├── MessageBox.h │ ├── ScrollBar.h │ ├── ScrollView.h │ ├── Slider.h │ ├── Sprite.h │ ├── Text.h │ ├── Text3D.h │ ├── ToolTip.h │ ├── UI.h │ ├── UIBatch.h │ ├── UIElement.h │ ├── UIEvents.h │ ├── View3D.h │ └── Window.h ├── Urho2d │ ├── AnimatedSprite2D.h │ ├── Animation2D.h │ ├── AnimationSet2D.h │ ├── CollisionBox2D.h │ ├── CollisionChain2D.h │ ├── CollisionCircle2D.h │ ├── CollisionEdge2D.h │ ├── CollisionPolygon2D.h │ ├── CollisionShape2D.h │ ├── Constraint2D.h │ ├── ConstraintDistance2D.h │ ├── ConstraintFriction2D.h │ ├── ConstraintGear2D.h │ ├── ConstraintMotor2D.h │ ├── ConstraintMouse2D.h │ ├── ConstraintPrismatic2D.h │ ├── ConstraintPulley2D.h │ ├── ConstraintRevolute2D.h │ ├── ConstraintRope2D.h │ ├── ConstraintWeld2D.h │ ├── ConstraintWheel2D.h │ ├── Drawable2D.h │ ├── DrawableProxy2D.h │ ├── MaterialCache2D.h │ ├── ParticleEffect2D.h │ ├── ParticleEmitter2D.h │ ├── PhysicsEvents2D.h │ ├── PhysicsUtils2D.h │ ├── PhysicsWorld2D.h │ ├── RigidBody2D.h │ ├── Sprite2D.h │ ├── SpriteSheet2D.h │ ├── StaticSprite2D.h │ ├── TileMap2D.h │ ├── TileMapDefs2D.h │ ├── TileMapLayer2D.h │ ├── TmxFile2D.h │ └── Urho2D.h ├── common.c2nim ├── convert.nim └── readme.txt ├── modeltester ├── .gitignore ├── CoreData │ ├── Materials │ │ └── DefaultGrey.xml │ ├── RenderPaths │ │ ├── Deferred.xml │ │ ├── Forward.xml │ │ ├── ForwardDepth.xml │ │ ├── Prepass.xml │ │ └── PrepassHDR.xml │ ├── Shaders │ │ ├── GLSL │ │ │ ├── AutoExposure.glsl │ │ │ ├── Basic.glsl │ │ │ ├── Bloom.glsl │ │ │ ├── BloomHDR.glsl │ │ │ ├── Blur.glsl │ │ │ ├── ColorCorrection.glsl │ │ │ ├── CopyFramebuffer.glsl │ │ │ ├── DeferredLight.glsl │ │ │ ├── Depth.glsl │ │ │ ├── FXAA2.glsl │ │ │ ├── FXAA3.glsl │ │ │ ├── Fog.glsl │ │ │ ├── GammaCorrection.glsl │ │ │ ├── GreyScale.glsl │ │ │ ├── Lighting.glsl │ │ │ ├── LitParticle.glsl │ │ │ ├── LitSolid.glsl │ │ │ ├── PostProcess.glsl │ │ │ ├── PrepassLight.glsl │ │ │ ├── Samplers.glsl │ │ │ ├── ScreenPos.glsl │ │ │ ├── Shadow.glsl │ │ │ ├── Skybox.glsl │ │ │ ├── Stencil.glsl │ │ │ ├── TerrainBlend.glsl │ │ │ ├── Text.glsl │ │ │ ├── Tonemap.glsl │ │ │ ├── Transform.glsl │ │ │ ├── Uniforms.glsl │ │ │ ├── Unlit.glsl │ │ │ ├── Vegetation.glsl │ │ │ ├── VegetationDepth.glsl │ │ │ ├── VegetationShadow.glsl │ │ │ └── Water.glsl │ │ └── HLSL │ │ │ ├── AutoExposure.hlsl │ │ │ ├── Basic.hlsl │ │ │ ├── Bloom.hlsl │ │ │ ├── BloomHDR.hlsl │ │ │ ├── Blur.hlsl │ │ │ ├── ColorCorrection.hlsl │ │ │ ├── CopyFramebuffer.hlsl │ │ │ ├── DeferredLight.hlsl │ │ │ ├── Depth.hlsl │ │ │ ├── FXAA2.hlsl │ │ │ ├── FXAA3.hlsl │ │ │ ├── Fog.hlsl │ │ │ ├── GammaCorrection.hlsl │ │ │ ├── GreyScale.hlsl │ │ │ ├── Lighting.hlsl │ │ │ ├── LitParticle.hlsl │ │ │ ├── LitSolid.hlsl │ │ │ ├── PostProcess.hlsl │ │ │ ├── PrepassLight.hlsl │ │ │ ├── Samplers.hlsl │ │ │ ├── ScreenPos.hlsl │ │ │ ├── Shadow.hlsl │ │ │ ├── Skybox.hlsl │ │ │ ├── Stencil.hlsl │ │ │ ├── TerrainBlend.hlsl │ │ │ ├── Text.hlsl │ │ │ ├── Tonemap.hlsl │ │ │ ├── Transform.hlsl │ │ │ ├── Uniforms.hlsl │ │ │ ├── Unlit.hlsl │ │ │ ├── Vegetation.hlsl │ │ │ ├── VegetationDepth.hlsl │ │ │ ├── VegetationShadow.hlsl │ │ │ └── Water.hlsl │ ├── Techniques │ │ ├── Diff.xml │ │ ├── DiffAO.xml │ │ ├── DiffAOAlpha.xml │ │ ├── DiffAOAlphaMask.xml │ │ ├── DiffAdd.xml │ │ ├── DiffAddAlpha.xml │ │ ├── DiffAlpha.xml │ │ ├── DiffAlphaMask.xml │ │ ├── DiffEmissive.xml │ │ ├── DiffEmissiveAlpha.xml │ │ ├── DiffEnvCube.xml │ │ ├── DiffEnvCubeAO.xml │ │ ├── DiffEnvCubeAOAlpha.xml │ │ ├── DiffEnvCubeAlpha.xml │ │ ├── DiffLightMap.xml │ │ ├── DiffLightMapAlpha.xml │ │ ├── DiffLitParticleAlpha.xml │ │ ├── DiffMultiply.xml │ │ ├── DiffNormal.xml │ │ ├── DiffNormalAO.xml │ │ ├── DiffNormalAOAlpha.xml │ │ ├── DiffNormalAOAlphaMask.xml │ │ ├── DiffNormalAlpha.xml │ │ ├── DiffNormalAlphaMask.xml │ │ ├── DiffNormalEmissive.xml │ │ ├── DiffNormalEmissiveAlpha.xml │ │ ├── DiffNormalEnvCube.xml │ │ ├── DiffNormalEnvCubeAlpha.xml │ │ ├── DiffNormalPacked.xml │ │ ├── DiffNormalPackedAO.xml │ │ ├── DiffNormalPackedAOAlpha.xml │ │ ├── DiffNormalPackedAOAlphaMask.xml │ │ ├── DiffNormalPackedAlpha.xml │ │ ├── DiffNormalPackedAlphaMask.xml │ │ ├── DiffNormalPackedEmissive.xml │ │ ├── DiffNormalPackedEmissiveAlpha.xml │ │ ├── DiffNormalPackedEnvCube.xml │ │ ├── DiffNormalPackedEnvCubeAlpha.xml │ │ ├── DiffNormalPackedSpec.xml │ │ ├── DiffNormalPackedSpecAO.xml │ │ ├── DiffNormalPackedSpecAOAlpha.xml │ │ ├── DiffNormalPackedSpecAOAlphaMask.xml │ │ ├── DiffNormalPackedSpecAlpha.xml │ │ ├── DiffNormalPackedSpecAlphaMask.xml │ │ ├── DiffNormalPackedSpecEmissive.xml │ │ ├── DiffNormalPackedSpecEmissiveAlpha.xml │ │ ├── DiffNormalSpec.xml │ │ ├── DiffNormalSpecAO.xml │ │ ├── DiffNormalSpecAOAlpha.xml │ │ ├── DiffNormalSpecAOAlphaMask.xml │ │ ├── DiffNormalSpecAlpha.xml │ │ ├── DiffNormalSpecAlphaMask.xml │ │ ├── DiffNormalSpecEmissive.xml │ │ ├── DiffNormalSpecEmissiveAlpha.xml │ │ ├── DiffOverlay.xml │ │ ├── DiffSkybox.xml │ │ ├── DiffSkyplane.xml │ │ ├── DiffSpec.xml │ │ ├── DiffSpecAlpha.xml │ │ ├── DiffSpecAlphaMask.xml │ │ ├── DiffUnlit.xml │ │ ├── DiffUnlitAlpha.xml │ │ ├── DiffVColAdd.xml │ │ ├── DiffVColAddAlpha.xml │ │ ├── DiffVColMultiply.xml │ │ ├── DiffVColUnlitAlpha.xml │ │ ├── NoTexture.xml │ │ ├── NoTextureAO.xml │ │ ├── NoTextureAOAlpha.xml │ │ ├── NoTextureAdd.xml │ │ ├── NoTextureAddAlpha.xml │ │ ├── NoTextureAlpha.xml │ │ ├── NoTextureEnvCube.xml │ │ ├── NoTextureEnvCubeAO.xml │ │ ├── NoTextureEnvCubeAOAlpha.xml │ │ ├── NoTextureEnvCubeAlpha.xml │ │ ├── NoTextureMultiply.xml │ │ ├── NoTextureNormal.xml │ │ ├── NoTextureNormalAlpha.xml │ │ ├── NoTextureNormalPacked.xml │ │ ├── NoTextureNormalPackedAlpha.xml │ │ ├── NoTextureOverlay.xml │ │ ├── NoTextureUnlit.xml │ │ ├── NoTextureUnlitAlpha.xml │ │ ├── NoTextureUnlitVCol.xml │ │ ├── NoTextureVColAdd.xml │ │ ├── NoTextureVColAddAlpha.xml │ │ ├── NoTextureVColMultiply.xml │ │ ├── TerrainBlend.xml │ │ ├── VegetationDiff.xml │ │ ├── VegetationDiffAlphaMask.xml │ │ ├── VegetationDiffUnlit.xml │ │ ├── VegetationDiffUnlitAlphaMask.xml │ │ └── Water.xml │ └── Textures │ │ ├── LUTIdentity.png │ │ ├── LUTIdentity.xml │ │ ├── Ramp.png │ │ ├── Ramp.xml │ │ ├── RampExtreme.png │ │ ├── RampExtreme.xml │ │ ├── RampWide.png │ │ ├── RampWide.xml │ │ ├── Spot.png │ │ ├── Spot.xml │ │ ├── SpotWide.png │ │ └── SpotWide.xml ├── Data │ ├── Fonts │ │ └── Anonymous Pro.ttf │ ├── Materials │ │ └── StoneTiled.xml │ ├── Models │ │ └── Plane.mdl │ ├── Textures │ │ ├── StoneDiffuse.dds │ │ ├── StoneNormal.dds │ │ └── UI.png │ └── UI │ │ └── DefaultStyle.xml ├── README.txt ├── modeltester.nim ├── nim.cfg ├── run.sh ├── samba │ ├── Materials │ │ ├── Bodymat.xml │ │ ├── Bottommat.xml │ │ ├── Hairmat.xml │ │ ├── JoinedMaterial_#1.xml │ │ ├── Shoesmat.xml │ │ └── Topmat.xml │ ├── Textures │ │ ├── woman1_Body_diffuse.png │ │ ├── woman1_Body_normal.png │ │ ├── woman1_Body_specular.png │ │ ├── woman1_Bottom_diffuse.png │ │ ├── woman1_Bottom_normal.png │ │ ├── woman1_Bottom_specular.png │ │ ├── woman1_Hair_diffuse.png │ │ ├── woman1_Hair_normal.png │ │ ├── woman1_Hair_specular.png │ │ ├── woman1_Shoes_diffuse.png │ │ ├── woman1_Shoes_normal.png │ │ ├── woman1_Shoes_specular.png │ │ ├── woman1_Top_diffuse.png │ │ ├── woman1_Top_normal.png │ │ └── woman1_Top_specular.png │ ├── sambaunreal.mdl │ ├── sambaunreal.txt │ └── sambaunreal_AnimStackmixamo.com.ani └── vcc.cfg ├── modules ├── audio │ ├── audio.nim │ ├── audiodefs.nim │ ├── bufferedsoundstream.nim │ ├── oggvorbissoundstream.nim │ ├── sound.nim │ ├── soundlistener.nim │ ├── soundsource.nim │ ├── soundsource3d.nim │ └── soundstream.nim ├── container │ ├── allocator.nim │ ├── arrayptr.nim │ ├── foreach.nim │ ├── hash.nim │ ├── hashbase.nim │ ├── hashmap.nim │ ├── hashset.nim │ ├── linkedlist.nim │ ├── list.nim │ ├── listbase.nim │ ├── pair.nim │ ├── ptrs.nim │ ├── refcounted.nim │ ├── sort.nim │ ├── urstr.nim │ ├── vector.nim │ └── vectorbase.nim ├── core │ ├── attribute.nim │ ├── condition.nim │ ├── context.nim │ ├── coreevents.nim │ ├── minidump.nim │ ├── mutex.nim │ ├── processutils.nim │ ├── profiler.nim │ ├── spline.nim │ ├── stringutils.nim │ ├── thread.nim │ ├── timer.nim │ ├── urobject.nim │ ├── variant.nim │ └── workqueue.nim ├── engine │ ├── application.nim │ ├── console.nim │ ├── debughud.nim │ └── engine.nim ├── graphics │ ├── animatedmodel.nim │ ├── animation.nim │ ├── animationcontroller.nim │ ├── animationstate.nim │ ├── batch.nim │ ├── billboardset.nim │ ├── camera.nim │ ├── customgeometry.nim │ ├── debugrenderer.nim │ ├── decalset.nim │ ├── drawable.nim │ ├── drawableevents.nim │ ├── geometry.nim │ ├── gpuobject.nim │ ├── graphics.nim │ ├── graphicsdefs.nim │ ├── graphicsevents.nim │ ├── graphicsimpl.nim │ ├── indexbuffer.nim │ ├── light.nim │ ├── material.nim │ ├── model.nim │ ├── occlusionbuffer.nim │ ├── octree.nim │ ├── octreequery.nim │ ├── particleeffect.nim │ ├── particleemitter.nim │ ├── renderer.nim │ ├── renderpath.nim │ ├── rendersurface.nim │ ├── shader.nim │ ├── shaderprecache.nim │ ├── shaderprogram.nim │ ├── shadervariation.nim │ ├── skeleton.nim │ ├── skybox.nim │ ├── staticmodel.nim │ ├── staticmodelgroup.nim │ ├── tangent.nim │ ├── technique.nim │ ├── terrain.nim │ ├── terrainpatch.nim │ ├── texture.nim │ ├── texture2d.nim │ ├── texture3d.nim │ ├── texturecube.nim │ ├── vertexbuffer.nim │ ├── vertexdeclaration.nim │ ├── view.nim │ ├── viewport.nim │ └── zone.nim ├── input │ ├── input.nim │ └── inputevents.nim ├── io │ ├── compression.nim │ ├── deserializer.nim │ ├── file.nim │ ├── filesystem.nim │ ├── filewatcher.nim │ ├── ioevents.nim │ ├── log.nim │ ├── macfilewatcher.nim │ ├── memorybuffer.nim │ ├── packagefile.nim │ ├── rwopswrapper.nim │ ├── serializer.nim │ └── vectorbuffer.nim ├── luascript │ ├── luafile.nim │ ├── luafunction.nim │ ├── luascript.nim │ ├── luascriptinstance.nim │ └── toluautils.nim ├── math │ ├── areaallocator.nim │ ├── boundingbox.nim │ ├── color.nim │ ├── frustum.nim │ ├── mathdefs.nim │ ├── matrix3.nim │ ├── matrix3x4.nim │ ├── matrix4.nim │ ├── plane.nim │ ├── polyhedron.nim │ ├── quaternion.nim │ ├── random.nim │ ├── ray.nim │ ├── rect.nim │ ├── sphere.nim │ ├── stringhash.nim │ ├── vector2.nim │ ├── vector3.nim │ └── vector4.nim ├── navigation │ ├── navigable.nim │ ├── navigationmesh.nim │ └── offmeshconnection.nim ├── network │ ├── connection.nim │ ├── controls.nim │ ├── httprequest.nim │ ├── network.nim │ ├── networkevents.nim │ ├── networkpriority.nim │ └── protocol.nim ├── physics │ ├── collisionshape.nim │ ├── constraint.nim │ ├── physicsevents.nim │ ├── physicsutils.nim │ ├── physicsworld.nim │ └── rigidbody.nim ├── resource │ ├── backgroundloader.nim │ ├── decompress.nim │ ├── image.nim │ ├── jsonfile.nim │ ├── jsonvalue.nim │ ├── plistfile.nim │ ├── resource.nim │ ├── resourcecache.nim │ ├── resourceevents.nim │ ├── xmlelement.nim │ └── xmlfile.nim ├── scene │ ├── animatable.nim │ ├── animationdefs.nim │ ├── component.nim │ ├── logiccomponent.nim │ ├── node.nim │ ├── objectanimation.nim │ ├── replicationstate.nim │ ├── scene.nim │ ├── sceneevents.nim │ ├── sceneresolver.nim │ ├── serializable.nim │ ├── smoothedtransform.nim │ ├── splinepath.nim │ ├── unknowncomponent.nim │ ├── valueanimation.nim │ └── valueanimationinfo.nim ├── script │ ├── addons.nim │ ├── script.nim │ ├── scriptapi.nim │ ├── scripteventlistener.nim │ ├── scriptfile.nim │ └── scriptinstance.nim ├── ui │ ├── borderimage.nim │ ├── button.nim │ ├── checkbox.nim │ ├── cursor.nim │ ├── dropdownlist.nim │ ├── fileselector.nim │ ├── font.nim │ ├── fontface.nim │ ├── fontfacebitmap.nim │ ├── fontfacefreetype.nim │ ├── lineedit.nim │ ├── listview.nim │ ├── menu.nim │ ├── messagebox.nim │ ├── scrollbar.nim │ ├── scrollview.nim │ ├── slider.nim │ ├── sprite.nim │ ├── text.nim │ ├── text3d.nim │ ├── tooltip.nim │ ├── ui.nim │ ├── uibatch.nim │ ├── uielement.nim │ ├── uievents.nim │ ├── view3d.nim │ └── window.nim ├── urho2d │ ├── animatedsprite2d.nim │ ├── animation2d.nim │ ├── animationset2d.nim │ ├── collisionbox2d.nim │ ├── collisionchain2d.nim │ ├── collisioncircle2d.nim │ ├── collisionedge2d.nim │ ├── collisionpolygon2d.nim │ ├── collisionshape2d.nim │ ├── constraint2d.nim │ ├── constraintdistance2d.nim │ ├── constraintfriction2d.nim │ ├── constraintgear2d.nim │ ├── constraintmotor2d.nim │ ├── constraintmouse2d.nim │ ├── constraintprismatic2d.nim │ ├── constraintpulley2d.nim │ ├── constraintrevolute2d.nim │ ├── constraintrope2d.nim │ ├── constraintweld2d.nim │ ├── constraintwheel2d.nim │ ├── drawable2d.nim │ ├── drawableproxy2d.nim │ ├── materialcache2d.nim │ ├── particleeffect2d.nim │ ├── particleemitter2d.nim │ ├── physicsevents2d.nim │ ├── physicsutils2d.nim │ ├── physicsworld2d.nim │ ├── rigidbody2d.nim │ ├── sprite2d.nim │ ├── spritesheet2d.nim │ ├── staticsprite2d.nim │ ├── tilemap2d.nim │ ├── tilemapdefs2d.nim │ ├── tilemaplayer2d.nim │ ├── tmxfile2d.nim │ └── urho2d.nim ├── urhoinclude.nim ├── urholink.nim └── urhomain.nim └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 3DICC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Audio/AudioDefs.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | namespace Urho3D 26 | { 27 | 28 | /// SoundSource type enumeration for master gain control. 29 | enum SoundType 30 | { 31 | SOUND_EFFECT = 0, 32 | SOUND_AMBIENT, 33 | SOUND_VOICE, 34 | SOUND_MUSIC, 35 | SOUND_MASTER, 36 | MAX_SOUND_TYPES 37 | }; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Container/DebugNew.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #if defined(_MSC_VER) && defined(_DEBUG) 26 | 27 | #define _CRTDBG_MAP_ALLOC 28 | 29 | #ifdef _malloca 30 | #undef _malloca 31 | #endif 32 | 33 | #include 34 | 35 | #define _DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__) 36 | #define new _DEBUG_NEW 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Core/MiniDump.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | namespace Urho3D 26 | { 27 | 28 | #if defined(_MSC_VER) && defined(URHO3D_MINIDUMPS) 29 | /// Write a minidump. Needs to be called from within a structured exception handler. 30 | URHO3D_API int WriteMiniDump(const char* applicationName, void* exceptionPointers); 31 | #endif 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Engine/EngineEvents.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include "Object.h" 26 | 27 | namespace Urho3D 28 | { 29 | 30 | /// A command has been entered on the console. 31 | EVENT(E_CONSOLECOMMAND, ConsoleCommand) 32 | { 33 | PARAM(P_COMMAND, Command); // String 34 | PARAM(P_ID, Id); // String 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/GPUObject.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLGPUObject.h" 27 | #else 28 | #include "Direct3D9/D3D9GPUObject.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/Graphics.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLGraphics.h" 27 | #else 28 | #include "Direct3D9/D3D9Graphics.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/GraphicsImpl.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLGraphicsImpl.h" 27 | #else 28 | #include "Direct3D9/D3D9GraphicsImpl.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/IndexBuffer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLIndexBuffer.h" 27 | #else 28 | #include "Direct3D9/D3D9IndexBuffer.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/RenderSurface.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLRenderSurface.h" 27 | #else 28 | #include "Direct3D9/D3D9RenderSurface.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/ShaderProgram.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLShaderProgram.h" 27 | #endif 28 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/ShaderVariation.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLShaderVariation.h" 27 | #else 28 | #include "Direct3D9/D3D9ShaderVariation.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/Texture.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLTexture.h" 27 | #else 28 | #include "Direct3D9/D3D9Texture.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/Texture2D.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLTexture2D.h" 27 | #else 28 | #include "Direct3D9/D3D9Texture2D.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/Texture3D.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLTexture3D.h" 27 | #else 28 | #include "Direct3D9/D3D9Texture3D.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/TextureCube.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLTextureCube.h" 27 | #else 28 | #include "Direct3D9/D3D9TextureCube.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/VertexBuffer.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLVertexBuffer.h" 27 | #else 28 | #include "Direct3D9/D3D9VertexBuffer.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Graphics/VertexDeclaration.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifndef URHO3D_OPENGL 26 | #include "Direct3D9/D3D9VertexDeclaration.h" 27 | #endif 28 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Precompiled.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include "HashMap.h" 26 | #include "HashSet.h" 27 | #include "Sort.h" 28 | #include "Str.h" 29 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Revision.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include "Urho3D.h" 26 | 27 | namespace Urho3D 28 | { 29 | 30 | /// Return subversion revision number as of the library build time. 31 | URHO3D_API const char* GetRevision(); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Scene/AnimationDefs.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | namespace Urho3D 26 | { 27 | 28 | /// Animation wrap mode. 29 | enum WrapMode 30 | { 31 | /// Loop mode. 32 | WM_LOOP = 0, 33 | /// Play once, when animation finished it will be removed. 34 | WM_ONCE, 35 | /// Clamp mode. 36 | WM_CLAMP, 37 | }; 38 | 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/Engine/Urho2D/Urho2D.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | namespace Urho3D 26 | { 27 | 28 | /// Register Urho2D library objects. 29 | void URHO3D_API RegisterUrho2DLibrary(Context* context); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/Bullet/src/BulletCollision/CollisionShapes/btCollisionMargin.h: -------------------------------------------------------------------------------- 1 | /* 2 | Bullet Continuous Collision Detection and Physics Library 3 | Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org 4 | 5 | This software is provided 'as-is', without any express or implied warranty. 6 | In no event will the authors be held liable for any damages arising from the use of this software. 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it freely, 9 | subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 12 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 13 | 3. This notice may not be removed or altered from any source distribution. 14 | */ 15 | 16 | #ifndef BT_COLLISION_MARGIN_H 17 | #define BT_COLLISION_MARGIN_H 18 | 19 | ///The CONVEX_DISTANCE_MARGIN is a default collision margin for convex collision shapes derived from btConvexInternalShape. 20 | ///This collision margin is used by Gjk and some other algorithms 21 | ///Note that when creating small objects, you need to make sure to set a smaller collision margin, using the 'setMargin' API 22 | #define CONVEX_DISTANCE_MARGIN btScalar(0.04)// btScalar(0.1)//;//btScalar(0.01) 23 | 24 | 25 | 26 | #endif //BT_COLLISION_MARGIN_H 27 | 28 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/Bullet/src/BulletCollision/Gimpact/btGImpactShape.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/Urho3D-1.32/Source/ThirdParty/Bullet/src/BulletCollision/Gimpact/btGImpactShape.h -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/Bullet/src/BulletDynamics/Vehicle/btVehicleRaycaster.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005 Erwin Coumans http://bulletphysics.org 3 | * 4 | * Permission to use, copy, modify, distribute and sell this software 5 | * and its documentation for any purpose is hereby granted without fee, 6 | * provided that the above copyright notice appear in all copies. 7 | * Erwin Coumans makes no representations about the suitability 8 | * of this software for any purpose. 9 | * It is provided "as is" without express or implied warranty. 10 | */ 11 | #ifndef BT_VEHICLE_RAYCASTER_H 12 | #define BT_VEHICLE_RAYCASTER_H 13 | 14 | #include "LinearMath/btVector3.h" 15 | 16 | /// btVehicleRaycaster is provides interface for between vehicle simulation and raycasting 17 | struct btVehicleRaycaster 18 | { 19 | virtual ~btVehicleRaycaster() 20 | { 21 | } 22 | struct btVehicleRaycasterResult 23 | { 24 | btVehicleRaycasterResult() :m_distFraction(btScalar(-1.)){}; 25 | btVector3 m_hitPointInWorld; 26 | btVector3 m_hitNormalInWorld; 27 | btScalar m_distFraction; 28 | }; 29 | 30 | virtual void* castRay(const btVector3& from,const btVector3& to, btVehicleRaycasterResult& result) = 0; 31 | 32 | }; 33 | 34 | #endif //BT_VEHICLE_RAYCASTER_H 35 | 36 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/Bullet/src/LinearMath/btDefaultMotionState.h: -------------------------------------------------------------------------------- 1 | #ifndef BT_DEFAULT_MOTION_STATE_H 2 | #define BT_DEFAULT_MOTION_STATE_H 3 | 4 | #include "btMotionState.h" 5 | 6 | ///The btDefaultMotionState provides a common implementation to synchronize world transforms with offsets. 7 | ATTRIBUTE_ALIGNED16(struct) btDefaultMotionState : public btMotionState 8 | { 9 | btTransform m_graphicsWorldTrans; 10 | btTransform m_centerOfMassOffset; 11 | btTransform m_startWorldTrans; 12 | void* m_userPointer; 13 | 14 | BT_DECLARE_ALIGNED_ALLOCATOR(); 15 | 16 | btDefaultMotionState(const btTransform& startTrans = btTransform::getIdentity(),const btTransform& centerOfMassOffset = btTransform::getIdentity()) 17 | : m_graphicsWorldTrans(startTrans), 18 | m_centerOfMassOffset(centerOfMassOffset), 19 | m_startWorldTrans(startTrans), 20 | m_userPointer(0) 21 | 22 | { 23 | } 24 | 25 | ///synchronizes world transform from user to physics 26 | virtual void getWorldTransform(btTransform& centerOfMassWorldTrans ) const 27 | { 28 | centerOfMassWorldTrans = m_centerOfMassOffset.inverse() * m_graphicsWorldTrans ; 29 | } 30 | 31 | ///synchronizes world transform from physics to user 32 | ///Bullet only calls the update of worldtransform for active objects 33 | virtual void setWorldTransform(const btTransform& centerOfMassWorldTrans) 34 | { 35 | m_graphicsWorldTrans = centerOfMassWorldTrans * m_centerOfMassOffset ; 36 | } 37 | 38 | 39 | 40 | }; 41 | 42 | #endif //BT_DEFAULT_MOTION_STATE_H 43 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/SDL/include/SDL_copying.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2014 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/SDL/include/SDL_name.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2014 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | #ifndef _SDLname_h_ 23 | #define _SDLname_h_ 24 | 25 | #if defined(__STDC__) || defined(__cplusplus) 26 | #define NeedFunctionPrototypes 1 27 | #endif 28 | 29 | #define SDL_NAME(X) SDL_##X 30 | 31 | #endif /* _SDLname_h_ */ 32 | 33 | /* vi: set ts=4 sw=4 expandtab: */ 34 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/SDL/include/SDL_opengles.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2014 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_opengles.h 24 | * 25 | * This is a simple file to encapsulate the OpenGL ES 1.X API headers. 26 | */ 27 | 28 | #ifdef __IPHONEOS__ 29 | #include 30 | #include 31 | #else 32 | #include 33 | #include 34 | #endif 35 | 36 | #ifndef APIENTRY 37 | #define APIENTRY 38 | #endif 39 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/SDL/include/SDL_revision.h: -------------------------------------------------------------------------------- 1 | #define SDL_REVISION "hg-8628:b558f99d48f0" 2 | #define SDL_REVISION_NUMBER 8628 3 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/SDL/include/SDL_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2014 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_types.h 24 | * 25 | * \deprecated 26 | */ 27 | 28 | /* DEPRECATED */ 29 | #include "SDL_stdinc.h" 30 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/SDL/include/close_code.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2014 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file close_code.h 24 | * 25 | * This file reverses the effects of begin_code.h and should be included 26 | * after you finish any function and structure declarations in your headers 27 | */ 28 | 29 | #undef _begin_code_h 30 | 31 | /* Reset structure packing at previous byte alignment */ 32 | #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__) 33 | #ifdef __BORLANDC__ 34 | #pragma nopackwarning 35 | #endif 36 | #pragma pack(pop) 37 | #endif /* Compiler needs structure packing set */ 38 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/kNet/include/kNet/64BitAllocDebugger.h: -------------------------------------------------------------------------------- 1 | /* Copyright The kNet Project. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. */ 14 | #pragma once 15 | 16 | /** @file 64BitAllocDebugger.h 17 | @brief Virtually reserves all memory on Windows in the < 4GB memory area so that all 18 | pointers used by the application are outside the 32-bit range. 19 | 20 | Idea and code taken from http://randomascii.wordpress.com/2012/02/14/64-bit-made-easy/ */ 21 | 22 | #ifdef _WIN64 23 | 24 | #include 25 | 26 | class BottomMemoryAllocator 27 | { 28 | public: 29 | BottomMemoryAllocator(); 30 | 31 | ~BottomMemoryAllocator(); 32 | 33 | std::vector virtualAllocated; 34 | std::vector heapAllocated; 35 | std::vector mallocAllocated; 36 | 37 | void ReserveBottomMemory(); 38 | void FreeBottomMemory(); 39 | }; 40 | 41 | #else 42 | 43 | /// On other platforms than 64-bit Windows, this debugging feature is not enabled. 44 | class BottomMemoryAllocator {}; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/kNet/include/kNet/Atomics.h: -------------------------------------------------------------------------------- 1 | /* Copyright The kNet Project. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. */ 14 | #pragma once 15 | 16 | #ifdef WIN32 17 | #include 18 | #endif 19 | 20 | /** @file Atomics.h 21 | @brief Abstracts platform-specific atomics operations. */ 22 | 23 | // bool CmpXChgPointer(word *dst, word newVal, word cmp); 24 | // Assigns *dst = newVal, but only if *dst == cmp before the assignment. This evaluation is done atomically. 25 | // Returns true if the assignment succeeded. 26 | // Do NOT call this macro with any side expressions on dst, newVal or cmp. 27 | 28 | #ifdef WIN32 29 | // See http://msdn.microsoft.com/en-us/library/ms683568(VS.85).aspx 30 | #define CmpXChgPointer(dst, newVal, cmp) (InterlockedCompareExchangePointer((dst), (newVal), (cmp)) == (cmp)) 31 | #else 32 | // See http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html 33 | #define CmpXChgPointer(dst, newVal, cmp) __sync_bool_compare_and_swap((dst), (cmp), (newVal)) 34 | #endif 35 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/kNet/include/kNet/Datagram.h: -------------------------------------------------------------------------------- 1 | /* Copyright The kNet Project. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. */ 14 | #pragma once 15 | 16 | /** @file Datagram.h 17 | @brief The struct \ref kNet::Datagram Datagram. */ 18 | 19 | namespace kNet 20 | { 21 | 22 | static const unsigned long cDatagramBufferSize = 3 * 512; 23 | 24 | /// @internal Datagram stores the raw data of a received UDP datagram. 25 | struct Datagram 26 | { 27 | unsigned char data[cDatagramBufferSize]; 28 | 29 | unsigned long size; 30 | }; 31 | 32 | } // ~kNet 33 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/kNet/include/kNet/NetException.h: -------------------------------------------------------------------------------- 1 | /* Copyright The kNet Project. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. */ 14 | #pragma once 15 | 16 | /** @file NetException.h 17 | @brief The class NetException. Common exception class thrown by kNet on errors. */ 18 | #include 19 | #include 20 | 21 | namespace kNet 22 | { 23 | 24 | class NetException : public std::exception 25 | { 26 | public: 27 | explicit NetException(const char *reason) 28 | :exception(reason) 29 | { 30 | } 31 | 32 | ~NetException() throw() 33 | { 34 | } 35 | 36 | const char *what() const throw() { return exception.c_str(); } 37 | 38 | private: 39 | std::string exception; 40 | }; 41 | 42 | } // ~kNet 43 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/kNet/include/kNet/SortCmp.h: -------------------------------------------------------------------------------- 1 | /* Copyright The kNet Project. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. */ 14 | #pragma once 15 | 16 | /** @file SortCmp.h 17 | @brief The TriCmp and TriCmpObj constructs are the default sorting predicate objects. */ 18 | 19 | #include 20 | 21 | namespace kNet 22 | { 23 | namespace sort 24 | { 25 | 26 | template 27 | int TriCmp(const T &a, const T &b) 28 | { 29 | // assume(!(a < b && b < a)); 30 | if (a < b) return -1; 31 | if (b < a) return 1; 32 | // assert(a == b); // Require trichotomy. 33 | 34 | return 0; 35 | } 36 | 37 | template 38 | class TriCmpObj 39 | { 40 | public: 41 | int operator ()(const T &a, const T &b) 42 | { 43 | if (a < b) return -1; 44 | if (b < a) return 1; 45 | assert(a == b); // Require trichotomy. 46 | return 0; 47 | } 48 | }; 49 | 50 | } // ~sort 51 | } // ~kNet 52 | 53 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/kNet/include/kNetBuildConfig.h: -------------------------------------------------------------------------------- 1 | // This file is programmatically generated using CMake. 2 | // This file shows the compilation settings that were used to build kNet. 3 | // These need to match for the client code using kNet. 4 | #pragma once 5 | 6 | #ifndef KNET_ENABLE_WINXP_SUPPORT 7 | #define KNET_ENABLE_WINXP_SUPPORT 8 | #endif 9 | 10 | #ifndef KNET_NO_MAXHEAP 11 | #define KNET_NO_MAXHEAP 12 | #endif 13 | 14 | -------------------------------------------------------------------------------- /Urho3D-1.32/Source/ThirdParty/kNet/include/kNetFwd.h: -------------------------------------------------------------------------------- 1 | /* Copyright The kNet Project. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. */ 14 | #pragma once 15 | 16 | /** @file kNetFwd.h 17 | @brief Forward-declares all common symbols defined by kNet. */ 18 | 19 | namespace kNet 20 | { 21 | class Clock; 22 | class DataDeserializer; 23 | struct Datagram; 24 | class DataSerializer; 25 | struct EndPoint; 26 | class Event; 27 | class EventArray; 28 | class IMessageHandler; 29 | class INetworkServerListener; 30 | class MessageConnection; 31 | class MessageListParser; 32 | class NetException; 33 | class Network; 34 | class NetworkMessage; 35 | class NetworkServer; 36 | struct OverlappedTransferBuffer; 37 | class PolledTimer; 38 | class SerializationStructCompiler; 39 | class SerializedDataIterator; 40 | class Socket; 41 | class StatsEventHierarchyNode; 42 | class TCPMessageConnection; 43 | class Thread; 44 | class UDPMessageConnection; 45 | } 46 | -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | nimcache 2 | Urho3D.log 3 | sample 4 | hello 5 | character 6 | particle 7 | huge 8 | mush 9 | Data 10 | CoreData 11 | -------------------------------------------------------------------------------- /examples/hello.nim: -------------------------------------------------------------------------------- 1 | 2 | import ui, urhomain, processutils, color, urstr, stringHash, variant, text, 3 | uielement 4 | 5 | include urholink 6 | # enable auto-deref for this module: 7 | {.experimental.} 8 | 9 | proc onKeyDown(userData: pointer; eventType: StringHash; 10 | eventData: var VariantMap) {.cdecl.} = 11 | closeUrho3D() 12 | 13 | proc main = 14 | parseArguments() 15 | 16 | openUrho3D(false) 17 | 18 | subscribeToEvent("KeyDown", onKeyDown) 19 | 20 | let text = cnew constructText(getContext()) 21 | text.setText("Hello Cruel World!") 22 | text.setColor(color.WHITE) 23 | text.setFont(getFont("Fonts/BlueHighway.ttf"), 42) 24 | text.setHorizontalAlignment(HA_CENTER) 25 | text.setVerticalAlignment(VA_CENTER) 26 | 27 | getSubsystemUI().getRoot().addChild(text) 28 | let exitCode = runMainLoop() 29 | quit exitCode 30 | 31 | main() 32 | -------------------------------------------------------------------------------- /examples/vcc.cfg: -------------------------------------------------------------------------------- 1 | /I ../../Urho3D-1.4/build/include 2 | /I ../../Urho3D-1.4/build/include/Urho3D/ThirdParty 3 | /I ../../Urho3D-1.4/build/include/Urho3D/Engine 4 | /I ../../Urho3D-1.4/build/include/Urho3D/Audio 5 | /I ../../Urho3D-1.4/build/include/Urho3D/Container 6 | /I ../../Urho3D-1.4/build/include/Urho3D/Core 7 | /I ../../Urho3D-1.4/build/include/Urho3D/Graphics 8 | /I ../../Urho3D-1.4/build/include/Urho3D/Graphics/Direct3D9 9 | /I ../../Urho3D-1.4/build/include/Urho3D/Input 10 | /I ../../Urho3D-1.4/build/include/Urho3D/IO 11 | /I ../../Urho3D-1.4/build/include/Urho3D/LuaScript 12 | /I ../../Urho3D-1.4/build/include/Urho3D/Math 13 | /I ../../Urho3D-1.4/build/include/Urho3D/Navigation 14 | /I ../../Urho3D-1.4/build/include/Urho3D/Network 15 | /I ../../Urho3D-1.4/build/include/Urho3D/Physics 16 | /I ../../Urho3D-1.4/build/include/Urho3D/Resource 17 | /I ../../Urho3D-1.4/build/include/Urho3D/Scene 18 | /I ../../Urho3D-1.4/build/include/Urho3D/Script 19 | /I ../../Urho3D-1.4/build/include/Urho3D/UI 20 | /I ../../Urho3D-1.4/build/include/Urho3D/Urho2D 21 | 22 | 23 | /D URHO3D_SSE 24 | /D URHO3D_MINIDUMPS 25 | /D URHO3D_FILEWATCHER 26 | /D URHO3D_PROFILING 27 | /D URHO3D_LOGGING 28 | /D URHO3D_ANGELSCRIPT 29 | /D URHO3D_NAVIGATION 30 | /D URHO3D_NETWORK 31 | /D URHO3D_PHYSICS 32 | /D URHO3D_URHO2D 33 | /D URHO3D_STATIC_DEFINE 34 | /D _CRT_SECURE_NO_WARNINGS 35 | /D HAVE_STDINT_H 36 | /D CMAKE_INTDIR="Debug" 37 | 38 | /wd4533 39 | /wd4005 40 | 41 | -------------------------------------------------------------------------------- /headers/Audio/AudioDefs.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | namespace Urho3D 26 | { 27 | 28 | /// SoundSource type enumeration for master gain control. 29 | enum SoundType 30 | { 31 | SOUND_EFFECT = 0, 32 | SOUND_AMBIENT, 33 | SOUND_VOICE, 34 | SOUND_MUSIC, 35 | SOUND_MASTER, 36 | MAX_SOUND_TYPES 37 | }; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /headers/Core/MiniDump.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | namespace Urho3D 26 | { 27 | 28 | #if defined(_MSC_VER) && defined(URHO3D_MINIDUMPS) 29 | /// Write a minidump. Needs to be called from within a structured exception handler. 30 | URHO3D_API int WriteMiniDump(const char* applicationName, void* exceptionPointers); 31 | #endif 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /headers/Engine/EngineEvents.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #include "Object.h" 26 | 27 | namespace Urho3D 28 | { 29 | 30 | /// A command has been entered on the console. 31 | EVENT(E_CONSOLECOMMAND, ConsoleCommand) 32 | { 33 | PARAM(P_COMMAND, Command); // String 34 | PARAM(P_ID, Id); // String 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /headers/Graphics/Graphics.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLGraphics.h" 27 | #else 28 | #include "Direct3D9/D3D9Graphics.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /headers/Graphics/GraphicsImpl.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLGraphicsImpl.h" 27 | #else 28 | #include "Direct3D9/D3D9GraphicsImpl.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /headers/Graphics/RenderSurface.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLRenderSurface.h" 27 | #else 28 | #include "Direct3D9/D3D9RenderSurface.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /headers/Graphics/ShaderProgram.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLShaderProgram.h" 27 | #endif 28 | -------------------------------------------------------------------------------- /headers/Graphics/ShaderVariation.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLShaderVariation.h" 27 | #else 28 | #include "Direct3D9/D3D9ShaderVariation.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /headers/Graphics/TextureCube.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifdef URHO3D_OPENGL 26 | #include "OpenGL/OGLTextureCube.h" 27 | #else 28 | #include "Direct3D9/D3D9TextureCube.h" 29 | #endif 30 | -------------------------------------------------------------------------------- /headers/Graphics/VertexDeclaration.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | #ifndef URHO3D_OPENGL 26 | #include "Direct3D9/D3D9VertexDeclaration.h" 27 | #endif 28 | -------------------------------------------------------------------------------- /headers/Scene/AnimationDefs.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | namespace Urho3D 26 | { 27 | 28 | /// Animation wrap mode. 29 | enum WrapMode 30 | { 31 | /// Loop mode. 32 | WM_LOOP = 0, 33 | /// Play once, when animation finished it will be removed. 34 | WM_ONCE, 35 | /// Clamp mode. 36 | WM_CLAMP, 37 | }; 38 | 39 | } 40 | 41 | -------------------------------------------------------------------------------- /headers/Urho2d/Urho2D.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2008-2014 the Urho3D project. 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | // 22 | 23 | #pragma once 24 | 25 | namespace Urho3D 26 | { 27 | 28 | /// Register Urho2D library objects. 29 | void URHO3D_API RegisterUrho2DLibrary(Context* context); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /headers/convert.nim: -------------------------------------------------------------------------------- 1 | 2 | import os, strutils 3 | 4 | proc exec(cmd: string) = 5 | if os.execShellCmd(cmd) != 0: 6 | echo "FAILURE ", cmd 7 | else: 8 | echo "SUCCESS ", cmd 9 | 10 | proc main(dir: string) = 11 | for kind, file in walkDir(dir): 12 | case kind 13 | of pcDir: 14 | main(file) 15 | of pcFile: 16 | if file.endswith(".h"): exec("c2nim common.c2nim " & file) 17 | else: discard 18 | 19 | main(getCurrentDir()) 20 | -------------------------------------------------------------------------------- /headers/readme.txt: -------------------------------------------------------------------------------- 1 | Here are the original C++ headers from Urho3D. Some of these had to be modified 2 | for ``c2nim`` but a simple diff against the original Urho3D headers shows the 3 | modifications. Then I used ``nim c -r convert.nim`` to generate a .nim module 4 | for every header file. These .nim modules then had to be modified again and the 5 | results are in the modules/ subdirectory. Again a simple diff shows the 6 | differences. In the future we can automate more of this process. 7 | 8 | Andreas Rumpf 9 | -------------------------------------------------------------------------------- /modeltester/.gitignore: -------------------------------------------------------------------------------- 1 | nimcache 2 | Urho3D.log 3 | modeltester 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Materials/DefaultGrey.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /modeltester/CoreData/RenderPaths/Deferred.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /modeltester/CoreData/RenderPaths/Forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/RenderPaths/ForwardDepth.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /modeltester/CoreData/RenderPaths/Prepass.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /modeltester/CoreData/RenderPaths/PrepassHDR.xml: -------------------------------------------------------------------------------- 1 | 2 | rgba16f 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Basic.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | #if defined(DIFFMAP) || defined(ALPHAMAP) 6 | varying vec2 vTexCoord; 7 | #endif 8 | #ifdef VERTEXCOLOR 9 | varying vec4 vColor; 10 | #endif 11 | 12 | void VS() 13 | { 14 | mat4 modelMatrix = iModelMatrix; 15 | vec3 worldPos = GetWorldPos(modelMatrix); 16 | gl_Position = GetClipPos(worldPos); 17 | 18 | #ifdef DIFFMAP 19 | vTexCoord = iTexCoord; 20 | #endif 21 | #ifdef VERTEXCOLOR 22 | vColor = iColor; 23 | #endif 24 | } 25 | 26 | void PS() 27 | { 28 | vec4 diffColor = cMatDiffColor; 29 | 30 | #ifdef VERTEXCOLOR 31 | diffColor *= vColor; 32 | #endif 33 | 34 | #if (!defined(DIFFMAP)) && (!defined(ALPHAMAP)) 35 | gl_FragColor = diffColor; 36 | #endif 37 | #ifdef DIFFMAP 38 | vec4 diffInput = texture2D(sDiffMap, vTexCoord); 39 | #ifdef ALPHAMASK 40 | if (diffInput.a < 0.5) 41 | discard; 42 | #endif 43 | gl_FragColor = diffColor * diffInput; 44 | #endif 45 | #ifdef ALPHAMAP 46 | float alphaInput = texture2D(sDiffMap, vTexCoord).a; 47 | gl_FragColor = vec4(diffColor.rgb, diffColor.a * alphaInput); 48 | #endif 49 | } 50 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Blur.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vTexCoord; 8 | varying vec2 vScreenPos; 9 | 10 | #ifdef COMPILEPS 11 | uniform vec2 cBlurDir; 12 | uniform float cBlurRadius; 13 | uniform float cBlurSigma; 14 | uniform vec2 cBlurHInvSize; 15 | #endif 16 | 17 | void VS() 18 | { 19 | mat4 modelMatrix = iModelMatrix; 20 | vec3 worldPos = GetWorldPos(modelMatrix); 21 | gl_Position = GetClipPos(worldPos); 22 | vTexCoord = GetQuadTexCoord(gl_Position); 23 | vScreenPos = GetScreenPosPreDiv(gl_Position); 24 | } 25 | 26 | void PS() 27 | { 28 | #ifdef BLUR3 29 | gl_FragColor = GaussianBlur(3, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, vTexCoord); 30 | #endif 31 | 32 | #ifdef BLUR5 33 | gl_FragColor = GaussianBlur(5, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, vTexCoord); 34 | #endif 35 | 36 | #ifdef BLUR7 37 | gl_FragColor = GaussianBlur(7, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, vTexCoord); 38 | #endif 39 | 40 | #ifdef BLUR9 41 | gl_FragColor = GaussianBlur(9, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, vTexCoord); 42 | #endif 43 | } 44 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/ColorCorrection.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vScreenPos; 8 | 9 | void VS() 10 | { 11 | mat4 modelMatrix = iModelMatrix; 12 | vec3 worldPos = GetWorldPos(modelMatrix); 13 | gl_Position = GetClipPos(worldPos); 14 | vScreenPos = GetScreenPosPreDiv(gl_Position); 15 | } 16 | 17 | void PS() 18 | { 19 | vec3 color = texture2D(sDiffMap, vScreenPos).rgb; 20 | gl_FragColor = vec4(ColorCorrection(color, sVolumeMap), 1.0); 21 | } 22 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/CopyFramebuffer.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | 6 | varying vec2 vScreenPos; 7 | 8 | void VS() 9 | { 10 | mat4 modelMatrix = iModelMatrix; 11 | vec3 worldPos = GetWorldPos(modelMatrix); 12 | gl_Position = GetClipPos(worldPos); 13 | vScreenPos = GetScreenPosPreDiv(gl_Position); 14 | } 15 | 16 | void PS() 17 | { 18 | gl_FragColor = texture2D(sDiffMap, vScreenPos); 19 | } 20 | 21 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Depth.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | varying vec3 vTexCoord; 6 | 7 | void VS() 8 | { 9 | mat4 modelMatrix = iModelMatrix; 10 | vec3 worldPos = GetWorldPos(modelMatrix); 11 | gl_Position = GetClipPos(worldPos); 12 | vTexCoord = vec3(GetTexCoord(iTexCoord), GetDepth(gl_Position)); 13 | } 14 | 15 | void PS() 16 | { 17 | #ifdef ALPHAMASK 18 | float alpha = texture2D(sDiffMap, vTexCoord.xy).a; 19 | if (alpha < 0.5) 20 | discard; 21 | #endif 22 | 23 | gl_FragColor = vec4(EncodeDepth(vTexCoord.z), 1.0); 24 | } 25 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Fog.glsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEPS 2 | vec3 GetFog(vec3 color, float fogFactor) 3 | { 4 | return mix(cFogColor, color, fogFactor); 5 | } 6 | 7 | vec3 GetLitFog(vec3 color, float fogFactor) 8 | { 9 | return color * fogFactor; 10 | } 11 | 12 | float GetFogFactor(float depth) 13 | { 14 | return clamp((cFogParams.x - depth) * cFogParams.y, 0.0, 1.0); 15 | } 16 | 17 | float GetHeightFogFactor(float depth, float height) 18 | { 19 | float fogFactor = GetFogFactor(depth); 20 | float heightFogFactor = (height - cFogParams.z) * cFogParams.w; 21 | heightFogFactor = 1.0 - clamp(exp(-(heightFogFactor * heightFogFactor)), 0.0, 1.0); 22 | return min(heightFogFactor, fogFactor); 23 | } 24 | #endif 25 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/GammaCorrection.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vScreenPos; 8 | 9 | void VS() 10 | { 11 | mat4 modelMatrix = iModelMatrix; 12 | vec3 worldPos = GetWorldPos(modelMatrix); 13 | gl_Position = GetClipPos(worldPos); 14 | vScreenPos = GetScreenPosPreDiv(gl_Position); 15 | } 16 | 17 | void PS() 18 | { 19 | vec3 color = texture2D(sDiffMap, vScreenPos).rgb; 20 | gl_FragColor = vec4(ToInverseGamma(color), 1.0); 21 | } 22 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/GreyScale.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "Lighting.glsl" 6 | 7 | varying vec2 vScreenPos; 8 | 9 | void VS() 10 | { 11 | mat4 modelMatrix = iModelMatrix; 12 | vec3 worldPos = GetWorldPos(modelMatrix); 13 | gl_Position = GetClipPos(worldPos); 14 | vScreenPos = GetScreenPosPreDiv(gl_Position); 15 | } 16 | 17 | void PS() 18 | { 19 | vec3 rgb = texture2D(sDiffMap, vScreenPos).rgb; 20 | float intensity = GetIntensity(rgb); 21 | gl_FragColor = vec4(intensity, intensity, intensity, 1.0); 22 | } 23 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/ScreenPos.glsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | vec4 GetScreenPos(vec4 clipPos) 3 | { 4 | return vec4( 5 | clipPos.x * cGBufferOffsets.z + cGBufferOffsets.x * clipPos.w, 6 | clipPos.y * cGBufferOffsets.w + cGBufferOffsets.y * clipPos.w, 7 | 0.0, 8 | clipPos.w); 9 | } 10 | 11 | vec2 GetScreenPosPreDiv(vec4 clipPos) 12 | { 13 | return vec2( 14 | clipPos.x / clipPos.w * cGBufferOffsets.z + cGBufferOffsets.x, 15 | clipPos.y / clipPos.w * cGBufferOffsets.w + cGBufferOffsets.y); 16 | } 17 | 18 | vec2 GetQuadTexCoord(vec4 clipPos) 19 | { 20 | return vec2( 21 | clipPos.x / clipPos.w * 0.5 + 0.5, 22 | clipPos.y / clipPos.w * 0.5 + 0.5); 23 | } 24 | 25 | vec2 GetQuadTexCoordNoFlip(vec3 worldPos) 26 | { 27 | return vec2( 28 | worldPos.x * 0.5 + 0.5, 29 | -worldPos.y * 0.5 + 0.5); 30 | } 31 | 32 | vec3 GetFarRay(vec4 clipPos) 33 | { 34 | vec3 viewRay = vec3( 35 | clipPos.x / clipPos.w * cFrustumSize.x, 36 | clipPos.y / clipPos.w * cFrustumSize.y, 37 | cFrustumSize.z); 38 | 39 | return cCameraRot * viewRay; 40 | } 41 | 42 | vec3 GetNearRay(vec4 clipPos) 43 | { 44 | vec3 viewRay = vec3( 45 | clipPos.x / clipPos.w * cFrustumSize.x, 46 | clipPos.y / clipPos.w * cFrustumSize.y, 47 | 0.0); 48 | 49 | return (cCameraRot * viewRay) * cDepthMode.x; 50 | } 51 | #endif 52 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Shadow.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | varying vec2 vTexCoord; 6 | 7 | void VS() 8 | { 9 | mat4 modelMatrix = iModelMatrix; 10 | vec3 worldPos = GetWorldPos(modelMatrix); 11 | gl_Position = GetClipPos(worldPos); 12 | vTexCoord = GetTexCoord(iTexCoord); 13 | } 14 | 15 | void PS() 16 | { 17 | #ifdef ALPHAMASK 18 | float alpha = texture2D(sDiffMap, vTexCoord).a; 19 | if (alpha < 0.5) 20 | discard; 21 | #endif 22 | 23 | gl_FragColor = vec4(1.0); 24 | } 25 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Skybox.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | varying vec3 vTexCoord; 6 | 7 | void VS() 8 | { 9 | mat4 modelMatrix = iModelMatrix; 10 | vec3 worldPos = GetWorldPos(modelMatrix); 11 | gl_Position = GetClipPos(worldPos); 12 | 13 | #ifndef GL_ES 14 | gl_Position.z = gl_Position.w; 15 | #else 16 | // On OpenGL ES force Z slightly in front of far plane to avoid clipping artifacts due to inaccuracy 17 | gl_Position.z = 0.999 * gl_Position.w; 18 | #endif 19 | vTexCoord = iPos.xyz; 20 | } 21 | 22 | void PS() 23 | { 24 | gl_FragColor = cMatDiffColor * textureCube(sDiffCubeMap, vTexCoord); 25 | } 26 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Stencil.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Transform.glsl" 3 | 4 | void VS() 5 | { 6 | mat4 modelMatrix = iModelMatrix; 7 | vec3 worldPos = GetWorldPos(modelMatrix); 8 | gl_Position = GetClipPos(worldPos); 9 | } 10 | 11 | void PS() 12 | { 13 | gl_FragColor = vec4(1.0); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Text.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | 5 | varying vec2 vTexCoord; 6 | varying vec4 vColor; 7 | 8 | #ifdef TEXT_EFFECT_SHADOW 9 | uniform vec2 cShadowOffset; 10 | uniform vec4 cShadowColor; 11 | #endif 12 | 13 | #ifdef TEXT_EFFECT_STROKE 14 | uniform vec4 cStrokeColor; 15 | #endif 16 | 17 | void VS() 18 | { 19 | mat4 modelMatrix = iModelMatrix; 20 | vec3 worldPos = GetWorldPos(modelMatrix); 21 | gl_Position = GetClipPos(worldPos); 22 | 23 | vTexCoord = iTexCoord; 24 | vColor = iColor; 25 | } 26 | 27 | void PS() 28 | { 29 | gl_FragColor.rgb = vColor.rgb; 30 | 31 | #ifdef SIGNED_DISTANCE_FIELD 32 | float distance = texture2D(sDiffMap, vTexCoord).a; 33 | if (distance < 0.5) 34 | { 35 | #ifdef TEXT_EFFECT_SHADOW 36 | if (texture2D(sDiffMap, vTexCoord - cShadowOffset).a > 0.5) 37 | gl_FragColor = cShadowColor; 38 | else 39 | #endif 40 | gl_FragColor.a = 0.0; 41 | } 42 | else 43 | { 44 | #ifdef TEXT_EFFECT_STROKE 45 | if (distance < 0.525) 46 | gl_FragColor.rgb = cStrokeColor.rgb; 47 | #endif 48 | 49 | #ifdef TEXT_EFFECT_SHADOW 50 | if (texture2D(sDiffMap, vTexCoord + cShadowOffset).a < 0.5) 51 | gl_FragColor.a = vColor.a; 52 | else 53 | #endif 54 | gl_FragColor.a = vColor.a * smoothstep(0.5, 0.505, distance); 55 | } 56 | #else 57 | gl_FragColor.a = vColor.a * texture2D(sDiffMap, vTexCoord).a; 58 | #endif 59 | } 60 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/Tonemap.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Samplers.glsl" 3 | #include "Transform.glsl" 4 | #include "ScreenPos.glsl" 5 | #include "PostProcess.glsl" 6 | 7 | varying vec2 vScreenPos; 8 | 9 | #ifdef COMPILEPS 10 | uniform float cTonemapExposureBias; 11 | uniform float cTonemapMaxWhite; 12 | #endif 13 | 14 | void VS() 15 | { 16 | mat4 modelMatrix = iModelMatrix; 17 | vec3 worldPos = GetWorldPos(modelMatrix); 18 | gl_Position = GetClipPos(worldPos); 19 | vScreenPos = GetScreenPosPreDiv(gl_Position); 20 | } 21 | 22 | void PS() 23 | { 24 | #ifdef REINHARDEQ3 25 | vec3 color = ReinhardEq3Tonemap(max(texture2D(sDiffMap, vScreenPos).rgb * cTonemapExposureBias, 0.0)); 26 | gl_FragColor = vec4(color, 1.0); 27 | #endif 28 | 29 | #ifdef REINHARDEQ4 30 | vec3 color = ReinhardEq4Tonemap(max(texture2D(sDiffMap, vScreenPos).rgb * cTonemapExposureBias, 0.0), cTonemapMaxWhite); 31 | gl_FragColor = vec4(color, 1.0); 32 | #endif 33 | 34 | #ifdef UNCHARTED2 35 | vec3 color = Uncharted2Tonemap(max(texture2D(sDiffMap, vScreenPos).rgb * cTonemapExposureBias, 0.0)) / 36 | Uncharted2Tonemap(vec3(cTonemapMaxWhite, cTonemapMaxWhite, cTonemapMaxWhite)); 37 | gl_FragColor = vec4(color, 1.0); 38 | #endif 39 | } 40 | 41 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/VegetationDepth.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Transform.glsl" 3 | 4 | uniform float cWindHeightFactor; 5 | uniform float cWindHeightPivot; 6 | uniform float cWindPeriod; 7 | uniform vec2 cWindWorldSpacing; 8 | 9 | varying vec3 vTexCoord; 10 | 11 | void VS() 12 | { 13 | mat4 modelMatrix = iModelMatrix; 14 | vec3 worldPos = GetWorldPos(modelMatrix); 15 | 16 | float windStrength = max(iPos.y - cWindHeightPivot, 0.0) * cWindHeightFactor; 17 | float windPeriod = cElapsedTime * cWindPeriod + dot(worldPos.xz, cWindWorldSpacing); 18 | worldPos.x += windStrength * sin(windPeriod); 19 | worldPos.z -= windStrength * cos(windPeriod); 20 | 21 | gl_Position = GetClipPos(worldPos); 22 | vTexCoord = vec3(GetTexCoord(iTexCoord), GetDepth(gl_Position)); 23 | } 24 | 25 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/GLSL/VegetationShadow.glsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.glsl" 2 | #include "Transform.glsl" 3 | 4 | uniform float cWindHeightFactor; 5 | uniform float cWindHeightPivot; 6 | uniform float cWindPeriod; 7 | uniform vec2 cWindWorldSpacing; 8 | 9 | varying vec2 vTexCoord; 10 | 11 | void VS() 12 | { 13 | mat4 modelMatrix = iModelMatrix; 14 | vec3 worldPos = GetWorldPos(modelMatrix); 15 | 16 | float windStrength = max(iPos.y - cWindHeightPivot, 0.0) * cWindHeightFactor; 17 | float windPeriod = cElapsedTime * cWindPeriod + dot(worldPos.xz, cWindWorldSpacing); 18 | worldPos.x += windStrength * sin(windPeriod); 19 | worldPos.z -= windStrength * cos(windPeriod); 20 | 21 | gl_Position = GetClipPos(worldPos); 22 | vTexCoord = GetTexCoord(iTexCoord); 23 | } 24 | 25 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/Blur.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "PostProcess.hlsl" 6 | 7 | uniform float2 cBlurDir; 8 | uniform float cBlurRadius; 9 | uniform float cBlurSigma; 10 | uniform float2 cBlurHOffsets; 11 | uniform float2 cBlurHInvSize; 12 | 13 | void VS(float4 iPos : POSITION, 14 | out float4 oPos : POSITION, 15 | out float2 oTexCoord : TEXCOORD0, 16 | out float2 oScreenPos : TEXCOORD1) 17 | { 18 | float4x3 modelMatrix = iModelMatrix; 19 | float3 worldPos = GetWorldPos(modelMatrix); 20 | oPos = GetClipPos(worldPos); 21 | oTexCoord = GetQuadTexCoord(oPos) + cBlurHOffsets; 22 | oScreenPos = GetScreenPosPreDiv(oPos); 23 | } 24 | 25 | void PS(float2 iTexCoord : TEXCOORD0, 26 | float2 iScreenPos : TEXCOORD1, 27 | out float4 oColor : COLOR0) 28 | { 29 | #ifdef BLUR3 30 | oColor = GaussianBlur(3, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, iTexCoord); 31 | #endif 32 | 33 | #ifdef BLUR5 34 | oColor = GaussianBlur(5, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, iTexCoord); 35 | #endif 36 | 37 | #ifdef BLUR7 38 | oColor = GaussianBlur(7, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, iTexCoord); 39 | #endif 40 | 41 | #ifdef BLUR9 42 | oColor = GaussianBlur(9, cBlurDir, cBlurHInvSize * cBlurRadius, cBlurSigma, sDiffMap, iTexCoord); 43 | #endif 44 | } 45 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/ColorCorrection.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "PostProcess.hlsl" 6 | 7 | void VS(float4 iPos : POSITION, 8 | out float4 oPos : POSITION, 9 | out float2 oScreenPos : TEXCOORD0) 10 | { 11 | float4x3 modelMatrix = iModelMatrix; 12 | float3 worldPos = GetWorldPos(modelMatrix); 13 | oPos = GetClipPos(worldPos); 14 | oScreenPos = GetScreenPosPreDiv(oPos); 15 | } 16 | 17 | void PS(float2 iScreenPos : TEXCOORD0, 18 | out float4 oColor : COLOR0) 19 | { 20 | float3 color = tex2D(sDiffMap, iScreenPos).rgb; 21 | oColor = float4(ColorCorrection(color, sVolumeMap), 1.0); 22 | } 23 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/CopyFramebuffer.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | #include "ScreenPos.hlsl" 5 | 6 | void VS(float4 iPos : POSITION, 7 | out float2 oScreenPos : TEXCOORD0, 8 | out float4 oPos : POSITION) 9 | { 10 | float4x3 modelMatrix = iModelMatrix; 11 | float3 worldPos = GetWorldPos(modelMatrix); 12 | oPos = GetClipPos(worldPos); 13 | oScreenPos = GetScreenPosPreDiv(oPos); 14 | } 15 | 16 | void PS(float2 iScreenPos : TEXCOORD0, 17 | out float4 oColor : COLOR0) 18 | { 19 | oColor = tex2D(sDiffMap, iScreenPos); 20 | } 21 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/Depth.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | void VS(float4 iPos : POSITION, 6 | #ifdef SKINNED 7 | float4 iBlendWeights : BLENDWEIGHT, 8 | int4 iBlendIndices : BLENDINDICES, 9 | #endif 10 | #ifdef INSTANCED 11 | float4x3 iModelInstance : TEXCOORD2, 12 | #endif 13 | float2 iTexCoord : TEXCOORD0, 14 | out float3 oTexCoord : TEXCOORD0, 15 | out float4 oPos : POSITION) 16 | { 17 | float4x3 modelMatrix = iModelMatrix; 18 | float3 worldPos = GetWorldPos(modelMatrix); 19 | oPos = GetClipPos(worldPos); 20 | oTexCoord = float3(GetTexCoord(iTexCoord), GetDepth(oPos)); 21 | } 22 | 23 | void PS( 24 | float3 iTexCoord : TEXCOORD0, 25 | out float4 oColor : COLOR0) 26 | { 27 | #ifdef ALPHAMASK 28 | float alpha = tex2D(sDiffMap, iTexCoord.xy).a; 29 | if (alpha < 0.5) 30 | discard; 31 | #endif 32 | 33 | oColor = iTexCoord.z; 34 | } 35 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/Fog.hlsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEPS 2 | float3 GetFog(float3 color, float fogFactor) 3 | { 4 | return lerp(cFogColor, color, fogFactor); 5 | } 6 | 7 | float3 GetLitFog(float3 color, float fogFactor) 8 | { 9 | return color * fogFactor; 10 | } 11 | 12 | float GetFogFactor(float depth) 13 | { 14 | return saturate((cFogParams.x - depth) * cFogParams.y); 15 | } 16 | 17 | float GetHeightFogFactor(float depth, float height) 18 | { 19 | float fogFactor = GetFogFactor(depth); 20 | float heightFogFactor = (height - cFogParams.z) * cFogParams.w; 21 | heightFogFactor = 1.0 - saturate(exp(-(heightFogFactor * heightFogFactor))); 22 | return min(heightFogFactor, fogFactor); 23 | } 24 | #endif 25 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/GammaCorrection.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "PostProcess.hlsl" 6 | 7 | void VS(float4 iPos : POSITION, 8 | out float4 oPos : POSITION, 9 | out float2 oScreenPos : TEXCOORD0) 10 | { 11 | float4x3 modelMatrix = iModelMatrix; 12 | float3 worldPos = GetWorldPos(modelMatrix); 13 | oPos = GetClipPos(worldPos); 14 | oScreenPos = GetScreenPosPreDiv(oPos); 15 | } 16 | 17 | void PS(float2 iScreenPos : TEXCOORD0, 18 | out float4 oColor : COLOR0) 19 | { 20 | float3 color = tex2D(sDiffMap, iScreenPos).rgb; 21 | oColor = float4(ToInverseGamma(color), 1.0); 22 | } 23 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/GreyScale.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "Lighting.hlsl" 6 | 7 | void VS(float4 iPos : POSITION, 8 | out float4 oPos : POSITION, 9 | out float2 oScreenPos : TEXCOORD0) 10 | { 11 | float4x3 modelMatrix = iModelMatrix; 12 | float3 worldPos = GetWorldPos(modelMatrix); 13 | oPos = GetClipPos(worldPos); 14 | oScreenPos = GetScreenPosPreDiv(oPos); 15 | } 16 | 17 | void PS(float2 iScreenPos : TEXCOORD0, 18 | out float4 oColor : COLOR0) 19 | { 20 | float3 rgb = tex2D(sDiffMap, iScreenPos).rgb; 21 | float intensity = GetIntensity(rgb); 22 | oColor = float4(intensity, intensity, intensity, 1.0); 23 | } 24 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/ScreenPos.hlsl: -------------------------------------------------------------------------------- 1 | #ifdef COMPILEVS 2 | float4 GetScreenPos(float4 clipPos) 3 | { 4 | return float4( 5 | clipPos.x * cGBufferOffsets.z + cGBufferOffsets.x * clipPos.w, 6 | -clipPos.y * cGBufferOffsets.w + cGBufferOffsets.y * clipPos.w, 7 | 0.0, 8 | clipPos.w); 9 | } 10 | 11 | float2 GetScreenPosPreDiv(float4 clipPos) 12 | { 13 | return float2( 14 | clipPos.x / clipPos.w * cGBufferOffsets.z + cGBufferOffsets.x, 15 | -clipPos.y / clipPos.w * cGBufferOffsets.w + cGBufferOffsets.y); 16 | } 17 | 18 | float2 GetQuadTexCoord(float4 clipPos) 19 | { 20 | return float2( 21 | clipPos.x / clipPos.w * 0.5 + 0.5, 22 | -clipPos.y / clipPos.w * 0.5 + 0.5); 23 | } 24 | 25 | float2 GetQuadTexCoordNoFlip(float3 worldPos) 26 | { 27 | return float2( 28 | worldPos.x * 0.5 + 0.5, 29 | -worldPos.y * 0.5 + 0.5); 30 | } 31 | 32 | float3 GetFarRay(float4 clipPos) 33 | { 34 | float3 viewRay = float3( 35 | clipPos.x / clipPos.w * cFrustumSize.x, 36 | clipPos.y / clipPos.w * cFrustumSize.y, 37 | cFrustumSize.z); 38 | 39 | return mul(viewRay, cCameraRot); 40 | } 41 | 42 | float3 GetNearRay(float4 clipPos) 43 | { 44 | float3 viewRay = float3( 45 | clipPos.x / clipPos.w * cFrustumSize.x, 46 | clipPos.y / clipPos.w * cFrustumSize.y, 47 | 0.0); 48 | 49 | return mul(viewRay, cCameraRot) * cDepthMode.z; 50 | } 51 | #endif 52 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/Shadow.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | void VS(float4 iPos : POSITION, 6 | #ifdef SKINNED 7 | float4 iBlendWeights : BLENDWEIGHT, 8 | int4 iBlendIndices : BLENDINDICES, 9 | #endif 10 | #ifdef INSTANCED 11 | float4x3 iModelInstance : TEXCOORD2, 12 | #endif 13 | float2 iTexCoord : TEXCOORD0, 14 | out float2 oTexCoord : TEXCOORD0, 15 | out float4 oPos : POSITION) 16 | { 17 | float4x3 modelMatrix = iModelMatrix; 18 | float3 worldPos = GetWorldPos(modelMatrix); 19 | oPos = GetClipPos(worldPos); 20 | oTexCoord = GetTexCoord(iTexCoord); 21 | } 22 | 23 | void PS( 24 | float2 iTexCoord : TEXCOORD0, 25 | out float4 oColor : COLOR0) 26 | { 27 | #ifdef ALPHAMASK 28 | float alpha = tex2D(sDiffMap, iTexCoord).a; 29 | if (alpha < 0.5) 30 | discard; 31 | #endif 32 | 33 | oColor = 1.0; 34 | } 35 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/Skybox.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | void VS(float4 iPos : POSITION, 6 | out float4 oPos : POSITION, 7 | out float3 oTexCoord : TEXCOORD0) 8 | { 9 | float4x3 modelMatrix = iModelMatrix; 10 | float3 worldPos = GetWorldPos(modelMatrix); 11 | oPos = GetClipPos(worldPos); 12 | 13 | oPos.z = oPos.w; 14 | oTexCoord = iPos.xyz; 15 | } 16 | 17 | void PS(float3 iTexCoord : TEXCOORD0, 18 | out float4 oColor : COLOR0) 19 | { 20 | oColor = cMatDiffColor * texCUBE(sDiffCubeMap, iTexCoord); 21 | } 22 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/Stencil.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | 4 | void VS(float4 iPos : POSITION, 5 | out float4 oPos : POSITION) 6 | { 7 | float4x3 modelMatrix = iModelMatrix; 8 | float3 worldPos = GetWorldPos(modelMatrix); 9 | oPos = GetClipPos(worldPos); 10 | } 11 | 12 | void PS(out float4 oColor : COLOR0) 13 | { 14 | oColor = 1.0; 15 | } 16 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/Tonemap.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Transform.hlsl" 3 | #include "Samplers.hlsl" 4 | #include "ScreenPos.hlsl" 5 | #include "PostProcess.hlsl" 6 | 7 | uniform float cTonemapExposureBias; 8 | uniform float cTonemapMaxWhite; 9 | 10 | void VS(float4 iPos : POSITION, 11 | out float4 oPos : POSITION, 12 | out float2 oScreenPos : TEXCOORD0) 13 | { 14 | float4x3 modelMatrix = iModelMatrix; 15 | float3 worldPos = GetWorldPos(modelMatrix); 16 | oPos = GetClipPos(worldPos); 17 | oScreenPos = GetScreenPosPreDiv(oPos); 18 | } 19 | 20 | void PS(float2 iScreenPos : TEXCOORD0, 21 | out float4 oColor : COLOR0) 22 | { 23 | #ifdef REINHARDEQ3 24 | float3 color = ReinhardEq3Tonemap(max(tex2D(sDiffMap, iScreenPos).rgb * cTonemapExposureBias, 0.0)); 25 | oColor = float4(color, 1.0); 26 | #endif 27 | 28 | #ifdef REINHARDEQ4 29 | float3 color = ReinhardEq4Tonemap(max(tex2D(sDiffMap, iScreenPos).rgb * cTonemapExposureBias, 0.0), cTonemapMaxWhite); 30 | oColor = float4(color, 1.0); 31 | #endif 32 | 33 | #ifdef UNCHARTED2 34 | float3 color = Uncharted2Tonemap(max(tex2D(sDiffMap, iScreenPos).rgb * cTonemapExposureBias, 0.0)) / 35 | Uncharted2Tonemap(float3(cTonemapMaxWhite, cTonemapMaxWhite, cTonemapMaxWhite)); 36 | oColor = float4(color, 1.0); 37 | #endif 38 | } 39 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/VegetationDepth.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | uniform float cWindHeightFactor; 6 | uniform float cWindHeightPivot; 7 | uniform float cWindPeriod; 8 | uniform float2 cWindWorldSpacing; 9 | 10 | void VS(float4 iPos : POSITION, 11 | #ifdef SKINNED 12 | float4 iBlendWeights : BLENDWEIGHT, 13 | int4 iBlendIndices : BLENDINDICES, 14 | #endif 15 | #ifdef INSTANCED 16 | float4x3 iModelInstance : TEXCOORD2, 17 | #endif 18 | float2 iTexCoord : TEXCOORD0, 19 | out float3 oTexCoord : TEXCOORD0, 20 | out float4 oPos : POSITION) 21 | { 22 | float4x3 modelMatrix = iModelMatrix; 23 | float3 worldPos = GetWorldPos(modelMatrix); 24 | 25 | float windStrength = max(iPos.y - cWindHeightPivot, 0.0) * cWindHeightFactor; 26 | float windPeriod = cElapsedTime * cWindPeriod + dot(worldPos.xz, cWindWorldSpacing); 27 | worldPos.x += windStrength * sin(windPeriod); 28 | worldPos.z -= windStrength * cos(windPeriod); 29 | 30 | oPos = GetClipPos(worldPos); 31 | oTexCoord = float3(GetTexCoord(iTexCoord), GetDepth(oPos)); 32 | } 33 | -------------------------------------------------------------------------------- /modeltester/CoreData/Shaders/HLSL/VegetationShadow.hlsl: -------------------------------------------------------------------------------- 1 | #include "Uniforms.hlsl" 2 | #include "Samplers.hlsl" 3 | #include "Transform.hlsl" 4 | 5 | uniform float cWindHeightFactor; 6 | uniform float cWindHeightPivot; 7 | uniform float cWindPeriod; 8 | uniform float2 cWindWorldSpacing; 9 | 10 | void VS(float4 iPos : POSITION, 11 | #ifdef SKINNED 12 | float4 iBlendWeights : BLENDWEIGHT, 13 | int4 iBlendIndices : BLENDINDICES, 14 | #endif 15 | #ifdef INSTANCED 16 | float4x3 iModelInstance : TEXCOORD2, 17 | #endif 18 | float2 iTexCoord : TEXCOORD0, 19 | out float2 oTexCoord : TEXCOORD0, 20 | out float4 oPos : POSITION) 21 | { 22 | float4x3 modelMatrix = iModelMatrix; 23 | float3 worldPos = GetWorldPos(modelMatrix); 24 | 25 | float windStrength = max(iPos.y - cWindHeightPivot, 0.0) * cWindHeightFactor; 26 | float windPeriod = cElapsedTime * cWindPeriod + dot(worldPos.xz, cWindWorldSpacing); 27 | worldPos.x += windStrength * sin(windPeriod); 28 | worldPos.z -= windStrength * cos(windPeriod); 29 | 30 | oPos = GetClipPos(worldPos); 31 | oTexCoord = GetTexCoord(iTexCoord); 32 | } 33 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/Diff.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffAdd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffAddAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffEnvCube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffEnvCubeAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffEnvCubeAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffEnvCubeAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffLightMap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffLightMapAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffLitParticleAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffMultiply.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalEnvCube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalEnvCubeAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPacked.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedEnvCube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedEnvCubeAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedSpec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedSpecAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedSpecAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedSpecAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedSpecAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedSpecAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedSpecEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalPackedSpecEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalSpec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalSpecAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalSpecAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalSpecAOAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalSpecAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalSpecAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalSpecEmissive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffNormalSpecEmissiveAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffOverlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffSkybox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffSkyplane.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffSpec.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffSpecAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffSpecAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffUnlitAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffVColAdd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffVColAddAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffVColMultiply.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/DiffVColUnlitAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTexture.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureAdd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureAddAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureEnvCube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureEnvCubeAO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureEnvCubeAOAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureEnvCubeAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureMultiply.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureNormal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureNormalAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureNormalPacked.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureNormalPackedAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureOverlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureUnlitAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureUnlitVCol.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureVColAdd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureVColAddAlpha.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/NoTextureVColMultiply.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/TerrainBlend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/VegetationDiff.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/VegetationDiffAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/VegetationDiffUnlit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/VegetationDiffUnlitAlphaMask.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /modeltester/CoreData/Techniques/Water.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/LUTIdentity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/CoreData/Textures/LUTIdentity.png -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/LUTIdentity.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/Ramp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/CoreData/Textures/Ramp.png -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/Ramp.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/RampExtreme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/CoreData/Textures/RampExtreme.png -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/RampExtreme.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/RampWide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/CoreData/Textures/RampWide.png -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/RampWide.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/Spot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/CoreData/Textures/Spot.png -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/Spot.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/SpotWide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/CoreData/Textures/SpotWide.png -------------------------------------------------------------------------------- /modeltester/CoreData/Textures/SpotWide.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /modeltester/Data/Fonts/Anonymous Pro.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/Data/Fonts/Anonymous Pro.ttf -------------------------------------------------------------------------------- /modeltester/Data/Materials/StoneTiled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /modeltester/Data/Models/Plane.mdl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/Data/Models/Plane.mdl -------------------------------------------------------------------------------- /modeltester/Data/Textures/StoneDiffuse.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/Data/Textures/StoneDiffuse.dds -------------------------------------------------------------------------------- /modeltester/Data/Textures/StoneNormal.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/Data/Textures/StoneNormal.dds -------------------------------------------------------------------------------- /modeltester/Data/Textures/UI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/Data/Textures/UI.png -------------------------------------------------------------------------------- /modeltester/README.txt: -------------------------------------------------------------------------------- 1 | This is the modeltester application which is meant for quick testing of 3D 2 | models (both static and animated) in the Urho3D engine. Instead of fiddling 3 | in the Urho3D Editor this application fires up a model very quickly and there 4 | are keys to do zooming, rotation, navigation around it and more. 5 | 6 | Build it: 7 | 8 | nim cpp modeltester.nim 9 | 10 | Run it: 11 | 12 | ./modeltester --help 13 | 14 | ...to get info on command syntax and what keys you can use. 15 | 16 | The samba directory is just a sample model to show it works: 17 | 18 | ./run.sh samba 19 | 20 | ...or manually: 21 | 22 | cd samba 23 | ../modeltester *.mdl *.txt *.ani 24 | 25 | If that works then you could try converting a file of your own. Make a directory to work in: 26 | 27 | mkdir mymodel 28 | cd mymodel 29 | 30 | Then run AssetImporter (try --help for more options) perhaps like this: 31 | 32 | ../AssetImporter model /some/path/to/mymodel.fbx mymodel.mdl -t -l 33 | 34 | Then you should typically get: 35 | 36 | mymodel.mdl 37 | mymodel.txt 38 | mymodel_something.ani 39 | Textures/*.png 40 | Materials/*.xml 41 | 42 | The txt file is the material list, its created since we used "-l". modeltester will use it to load the materials. 43 | 44 | ...and then you can try it: 45 | 46 | ../modeltester mymodel.mdl mymodel.txt mymode_something.ani 47 | 48 | -------------------------------------------------------------------------------- /modeltester/run.sh: -------------------------------------------------------------------------------- 1 | cd $1 2 | ../modeltester *.mdl *.txt *.ani 3 | 4 | -------------------------------------------------------------------------------- /modeltester/samba/Materials/Bodymat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/samba/Materials/Bottommat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/samba/Materials/Hairmat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/samba/Materials/JoinedMaterial_#1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/samba/Materials/Shoesmat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/samba/Materials/Topmat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Body_diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Body_diffuse.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Body_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Body_normal.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Body_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Body_specular.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Bottom_diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Bottom_diffuse.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Bottom_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Bottom_normal.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Bottom_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Bottom_specular.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Hair_diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Hair_diffuse.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Hair_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Hair_normal.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Hair_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Hair_specular.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Shoes_diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Shoes_diffuse.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Shoes_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Shoes_normal.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Shoes_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Shoes_specular.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Top_diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Top_diffuse.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Top_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Top_normal.png -------------------------------------------------------------------------------- /modeltester/samba/Textures/woman1_Top_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/Textures/woman1_Top_specular.png -------------------------------------------------------------------------------- /modeltester/samba/sambaunreal.mdl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/sambaunreal.mdl -------------------------------------------------------------------------------- /modeltester/samba/sambaunreal.txt: -------------------------------------------------------------------------------- 1 | Materials/JoinedMaterial_#1.xml 2 | Materials/JoinedMaterial_#1.xml 3 | Materials/JoinedMaterial_#1.xml 4 | Materials/Shoesmat.xml 5 | Materials/Topmat.xml 6 | Materials/Hairmat.xml 7 | Materials/Bottommat.xml 8 | -------------------------------------------------------------------------------- /modeltester/samba/sambaunreal_AnimStackmixamo.com.ani: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modeltester/samba/sambaunreal_AnimStackmixamo.com.ani -------------------------------------------------------------------------------- /modeltester/vcc.cfg: -------------------------------------------------------------------------------- 1 | /I ..\Urho3D-1.32\Source\Engine 2 | /I ..\Urho3D-1.32\Source\Engine\Audio 3 | /I ..\Urho3D-1.32\Source\Engine\Container 4 | /I ..\Urho3D-1.32\Source\Engine\Core 5 | /I ..\Urho3D-1.32\Source\Engine\Engine 6 | /I ..\Urho3D-1.32\Source\Engine\Graphics 7 | /I ..\Urho3D-1.32\Source\Engine\Graphics\Direct3D9 8 | /I ..\Urho3D-1.32\Source\Engine\Input 9 | /I ..\Urho3D-1.32\Source\Engine\IO 10 | /I ..\Urho3D-1.32\Source\Engine\LuaScript 11 | /I ..\Urho3D-1.32\Source\Engine\Math 12 | /I ..\Urho3D-1.32\Source\Engine\Navigation 13 | /I ..\Urho3D-1.32\Source\Engine\Network 14 | /I ..\Urho3D-1.32\Source\Engine\Physics 15 | /I ..\Urho3D-1.32\Source\Engine\Resource 16 | /I ..\Urho3D-1.32\Source\Engine\Scene 17 | /I ..\Urho3D-1.32\Source\Engine\Script 18 | /I ..\Urho3D-1.32\Source\Engine\UI 19 | /I ..\Urho3D-1.32\Source\Engine\Urho2D 20 | /I ..\Urho3D-1.32\Source\ThirdParty\SDL\include 21 | /I ..\Urho3D-1.32\Source\ThirdParty\AngelScript\include 22 | /I ..\Urho3D-1.32\Source\ThirdParty\kNet\include 23 | /I ..\Urho3D-1.32\Source\ThirdParty\Bullet\src 24 | /I ..\Urho3D-1.32\Source\ThirdParty\Box2D 25 | /I ..\Urho3D-1.32\Build\Engine 26 | /I ..\modules 27 | 28 | /MDd 29 | /FS 30 | /D URHO3D_SSE 31 | /D URHO3D_MINIDUMPS 32 | /D URHO3D_FILEWATCHER 33 | /D URHO3D_PROFILING 34 | /D URHO3D_LOGGING 35 | /D URHO3D_ANGELSCRIPT 36 | /D URHO3D_NAVIGATION 37 | /D URHO3D_NETWORK 38 | /D URHO3D_PHYSICS 39 | /D URHO3D_URHO2D 40 | /D URHO3D_STATIC_DEFINE 41 | /D _CRT_SECURE_NO_WARNINGS 42 | /D HAVE_STDINT_H 43 | /D CMAKE_INTDIR="Release" 44 | 45 | /wd4533 46 | /wd4005 47 | -------------------------------------------------------------------------------- /modules/audio/audiodefs.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | type 5 | SoundType* {.importcpp: "Urho3D::SoundType".} = enum 6 | SOUND_EFFECT = 0, SOUND_AMBIENT, SOUND_VOICE, SOUND_MUSIC, SOUND_MASTER, 7 | MAX_SOUND_TYPES 8 | 9 | -------------------------------------------------------------------------------- /modules/audio/oggvorbissoundstream.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | arrayPtr, soundStream 5 | 6 | discard "forward decl of Sound" 7 | type 8 | OggVorbisSoundStream* {.importc: "Urho3D::OggVorbisSoundStream", 9 | header: "OggVorbisSoundStream.h".} = object of SoundStream 10 | decoder* {.importc: "decoder_".}: pointer 11 | data* {.importc: "data_".}: SharedArrayPtr[cchar] 12 | dataSize* {.importc: "dataSize_".}: cuint 13 | 14 | 15 | proc constructOggVorbisSoundStream*(sound: ptr Sound): OggVorbisSoundStream {. 16 | importcpp: "Urho3D::OggVorbisSoundStream(@)", 17 | header: "OggVorbisSoundStream.h", constructor.} 18 | proc destroyOggVorbisSoundStream*(this: var OggVorbisSoundStream) {. 19 | importcpp: "#.~OggVorbisSoundStream()", header: "OggVorbisSoundStream.h".} 20 | proc getData*(this: var OggVorbisSoundStream; dest: ptr cchar; numBytes: cuint): cuint {. 21 | importcpp: "GetData", header: "OggVorbisSoundStream.h".} 22 | -------------------------------------------------------------------------------- /modules/audio/soundlistener.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | component 5 | 6 | 7 | type 8 | SoundListener* {.importc: "Urho3D::SoundListener", header: "SoundListener.h".} = object of Component 9 | 10 | 11 | proc getType*(this: SoundListener): Urho3D.StringHash {.noSideEffect, 12 | importcpp: "GetType", header: "SoundListener.h".} 13 | proc getBaseType*(this: SoundListener): Urho3D.StringHash {.noSideEffect, 14 | importcpp: "GetBaseType", header: "SoundListener.h".} 15 | proc getTypeName*(this: SoundListener): Urho3D.UrString {.noSideEffect, 16 | importcpp: "GetTypeName", header: "SoundListener.h".} 17 | proc getTypeStatic*(): Urho3D.StringHash {. 18 | importcpp: "Urho3D::SoundListener::GetTypeStatic(@)", 19 | header: "SoundListener.h".} 20 | proc getTypeNameStatic*(): Urho3D.UrString {. 21 | importcpp: "Urho3D::SoundListener::GetTypeNameStatic(@)", 22 | header: "SoundListener.h".} 23 | proc constructSoundListener*(context: ptr Context): SoundListener {. 24 | importcpp: "Urho3D::SoundListener(@)", header: "SoundListener.h", 25 | constructor.} 26 | proc destroySoundListener*(this: var SoundListener) {. 27 | importcpp: "#.~SoundListener()", header: "SoundListener.h".} 28 | proc registerObject*(context: ptr Context) {. 29 | importcpp: "Urho3D::SoundListener::RegisterObject(@)", 30 | header: "SoundListener.h".} 31 | -------------------------------------------------------------------------------- /modules/container/hash.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | proc makeHash*[T](value: ptr T): cuint {.noSideEffect, 5 | importcpp: "Urho3D::MakeHash(@)", header: "Hash.h".} 6 | 7 | proc makeHash*[T](value: T): cuint{.noSideEffect, 8 | importcpp: "Urho3D::MakeHash(@)", header: "Hash.h".} 9 | -------------------------------------------------------------------------------- /modules/container/pair.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | hash 5 | 6 | 7 | type 8 | Pair* {.importcpp: "Urho3D::Pair", header: "Pair.h".}[T, U] = object 9 | first* {.importc: "first_".}: T 10 | second* {.importc: "second_".}: U 11 | 12 | 13 | proc constructPair*[T, U](): Pair[T, U] {.importcpp: "Urho3D::Pair(@)", 14 | header: "Pair.h", constructor.} 15 | proc constructPair*[T, U](first: T; second: U): Pair[T, U] {. 16 | importcpp: "Urho3D::Pair(@)", header: "Pair.h", constructor.} 17 | proc `==`*[T, U](this: Pair[T, U]; rhs: Pair[T, U]): bool {.noSideEffect, 18 | importcpp: "# == #", header: "Pair.h".} 19 | proc `<`*[T, U](this: Pair[T, U]; rhs: Pair[T, U]): bool {.noSideEffect, 20 | importcpp: "# < #", header: "Pair.h".} 21 | proc toHash*[T, U](this: Pair[T, U]): cuint {.noSideEffect, importcpp: "ToHash", 22 | header: "Pair.h".} 23 | 24 | proc makePair*[T, U](first: T; second: U): Pair[T, U] {.noSideEffect, 25 | importcpp: "Urho3D::MakePair(@)", header: "Pair.h".} 26 | -------------------------------------------------------------------------------- /modules/container/refcounted.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | type 5 | RefCount* {.importcpp: "Urho3D::RefCount", header: "RefCounted.h".} = object 6 | refs* {.importc: "refs_".}: cint 7 | weakRefs* {.importc: "weakRefs_".}: cint 8 | 9 | 10 | proc constructRefCount*(): RefCount {.importcpp: "Urho3D::RefCount(@)", 11 | header: "RefCounted.h", constructor.} 12 | proc destroyRefCount*(this: var RefCount) {.importcpp: "#.~RefCount()", 13 | header: "RefCounted.h".} 14 | 15 | type 16 | RefCounted* {.importcpp: "Urho3D::RefCounted", header: "RefCounted.h", 17 | inheritable.} = object 18 | refCount* {.importc: "refCount_".}: ptr RefCount 19 | 20 | 21 | proc constructRefCounted*(): RefCounted {.importcpp: "Urho3D::RefCounted(@)", 22 | header: "RefCounted.h", constructor.} 23 | proc destroyRefCounted*(this: var RefCounted) {.importcpp: "#.~RefCounted()", 24 | header: "RefCounted.h".} 25 | proc addRef*(this: var RefCounted) {.importcpp: "AddRef", header: "RefCounted.h".} 26 | proc releaseRef*(this: var RefCounted) {.importcpp: "ReleaseRef", 27 | header: "RefCounted.h".} 28 | proc refs*(this: RefCounted): cint {.noSideEffect, importcpp: "Refs", 29 | header: "RefCounted.h".} 30 | proc weakRefs*(this: RefCounted): cint {.noSideEffect, importcpp: "WeakRefs", 31 | header: "RefCounted.h".} 32 | proc refCountPtr*(this: var RefCounted): ptr RefCount {. 33 | importcpp: "RefCountPtr", header: "RefCounted.h".} 34 | -------------------------------------------------------------------------------- /modules/container/sort.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | vectorBase 5 | 6 | var QUICKSORT_THRESHOLD* {.importc: "QUICKSORT_THRESHOLD", header: "Sort.h".}: cint #= 16 7 | 8 | 9 | proc insertionSort*[T](begin: RandomAccessIterator[T]; 10 | `end`: RandomAccessIterator[T]){.noSideEffect, 11 | importcpp: "Urho3D::InsertionSort(@)", header: "Sort.h".} 12 | 13 | proc insertionSort*[T, U](begin: RandomAccessIterator[T]; 14 | `end`: RandomAccessIterator[T]; compare: U){.noSideEffect, 15 | importcpp: "Urho3D::InsertionSort(@)", header: "Sort.h".} 16 | 17 | proc initialQuickSort*[T](begin: RandomAccessIterator[T]; 18 | `end`: RandomAccessIterator[T]){.noSideEffect, 19 | importcpp: "Urho3D::InitialQuickSort(@)", header: "Sort.h".} 20 | 21 | proc initialQuickSort*[T, U](begin: RandomAccessIterator[T]; 22 | `end`: RandomAccessIterator[T]; compare: U){.noSideEffect, 23 | importcpp: "Urho3D::InitialQuickSort(@)", header: "Sort.h".} 24 | 25 | proc sort*[T](begin: RandomAccessIterator[T]; `end`: RandomAccessIterator[T]){.noSideEffect, 26 | importcpp: "Urho3D::Sort(@)", header: "Sort.h".} 27 | 28 | proc sort*[T, U](begin: RandomAccessIterator[T]; `end`: RandomAccessIterator[T]; 29 | compare: U){.noSideEffect, 30 | importcpp: "Urho3D::Sort(@)", header: "Sort.h".} 31 | -------------------------------------------------------------------------------- /modules/core/condition.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | urho3D 5 | 6 | 7 | type 8 | Condition* {.importc: "Urho3D::Condition", header: "Condition.h".} = object 9 | event* {.importc: "event_".}: pointer 10 | 11 | 12 | proc constructCondition*(): Condition {.importcpp: "Urho3D::Condition(@)", 13 | header: "Condition.h", constructor.} 14 | proc destroyCondition*(this: var Condition) {.importcpp: "#.~Condition()", 15 | header: "Condition.h".} 16 | proc set*(this: var Condition) {.importcpp: "Set", header: "Condition.h".} 17 | proc wait*(this: var Condition) {.importcpp: "Wait", header: "Condition.h".} 18 | -------------------------------------------------------------------------------- /modules/core/coreevents.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | UrObject 5 | 6 | 7 | var E_BEGINFRAME* {.importc: "E_BEGINFRAME", header: "CoreEvents.h".}: Urho3D.StringHash = "BeginFrame" 8 | 9 | var P_FRAMENUMBER* {.importc: "P_FRAMENUMBER", header: "CoreEvents.h".}: Urho3D.StringHash = "FrameNumber" 10 | 11 | 12 | var P_TIMESTEP* {.importc: "P_TIMESTEP", header: "CoreEvents.h".}: Urho3D.StringHash = "TimeStep" 13 | 14 | 15 | 16 | var E_UPDATE* {.importc: "E_UPDATE", header: "CoreEvents.h".}: Urho3D.StringHash = "Update" 17 | 18 | var P_TIMESTEP* {.importc: "P_TIMESTEP", header: "CoreEvents.h".}: Urho3D.StringHash = "TimeStep" 19 | 20 | 21 | 22 | var E_POSTUPDATE* {.importc: "E_POSTUPDATE", header: "CoreEvents.h".}: Urho3D.StringHash = "PostUpdate" 23 | 24 | var P_TIMESTEP* {.importc: "P_TIMESTEP", header: "CoreEvents.h".}: Urho3D.StringHash = "TimeStep" 25 | 26 | 27 | 28 | var E_RENDERUPDATE* {.importc: "E_RENDERUPDATE", header: "CoreEvents.h".}: Urho3D.StringHash = "RenderUpdate" 29 | 30 | var P_TIMESTEP* {.importc: "P_TIMESTEP", header: "CoreEvents.h".}: Urho3D.StringHash = "TimeStep" 31 | 32 | 33 | 34 | var E_POSTRENDERUPDATE* {.importc: "E_POSTRENDERUPDATE", header: "CoreEvents.h".}: Urho3D.StringHash = "PostRenderUpdate" 35 | 36 | var P_TIMESTEP* {.importc: "P_TIMESTEP", header: "CoreEvents.h".}: Urho3D.StringHash = "TimeStep" 37 | 38 | 39 | 40 | var E_ENDFRAME* {.importc: "E_ENDFRAME", header: "CoreEvents.h".}: StringHash #= "EndFrame" 41 | -------------------------------------------------------------------------------- /modules/core/minidump.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | when defined(msc_Ver) and defined(urho3d_Minidumps): 4 | proc writeMiniDump*(applicationName: cstring; exceptionPointers: pointer): cint {. 5 | importcpp: "Urho3D::WriteMiniDump(@)", header: "MiniDump.h".} -------------------------------------------------------------------------------- /modules/core/mutex.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | type 4 | Mutex* {.importc: "Urho3D::Mutex", header: "Mutex.h".} = object 5 | handle* {.importc: "handle_".}: pointer 6 | 7 | 8 | proc constructMutex*(): Mutex {.importcpp: "Urho3D::Mutex(@)", header: "Mutex.h", 9 | constructor.} 10 | proc destroyMutex*(this: var Mutex) {.importcpp: "#.~Mutex()", header: "Mutex.h".} 11 | proc acquire*(this: var Mutex) {.importcpp: "Acquire", header: "Mutex.h".} 12 | proc release*(this: var Mutex) {.importcpp: "Release", header: "Mutex.h".} 13 | 14 | type 15 | MutexLock* {.importc: "Urho3D::MutexLock", header: "Mutex.h".} = object 16 | 17 | proc constructMutexLock*(mutex: var Mutex): MutexLock {. 18 | importcpp: "Urho3D::MutexLock(@)", header: "Mutex.h", constructor.} 19 | proc destroyMutexLock*(this: var MutexLock) {.importcpp: "#.~MutexLock()", 20 | header: "Mutex.h".} 21 | -------------------------------------------------------------------------------- /modules/graphics/drawableevents.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | UrObject 5 | 6 | 7 | var E_BONEHIERARCHYCREATED* {.importc: "E_BONEHIERARCHYCREATED", 8 | header: "DrawableEvents.h".}: Urho3D.StringHash = "BoneHierarchyCreated" 9 | 10 | var P_NODE* {.importc: "P_NODE", header: "DrawableEvents.h".}: Urho3D.StringHash = "Node" 11 | 12 | 13 | 14 | var E_ANIMATIONTRIGGER* {.importc: "E_ANIMATIONTRIGGER", 15 | header: "DrawableEvents.h".}: Urho3D.StringHash = "AnimationTrigger" 16 | 17 | var P_NODE* {.importc: "P_NODE", header: "DrawableEvents.h".}: Urho3D.StringHash = "Node" 18 | 19 | 20 | var P_NAME* {.importc: "P_NAME", header: "DrawableEvents.h".}: Urho3D.StringHash = "Name" 21 | 22 | 23 | var P_TIME* {.importc: "P_TIME", header: "DrawableEvents.h".}: Urho3D.StringHash = "Time" 24 | 25 | 26 | var P_DATA* {.importc: "P_DATA", header: "DrawableEvents.h".}: Urho3D.StringHash = "Data" 27 | 28 | 29 | 30 | var E_TERRAINCREATED* {.importc: "E_TERRAINCREATED", header: "DrawableEvents.h".}: Urho3D.StringHash = "TerrainCreated" 31 | 32 | var P_NODE* {.importc: "P_NODE", header: "DrawableEvents.h".}: Urho3D.StringHash = "Node" 33 | 34 | -------------------------------------------------------------------------------- /modules/graphics/graphics.nim: -------------------------------------------------------------------------------- 1 | 2 | when defined(windows): 3 | const Header = "D3D9Graphics.h" 4 | 5 | else: 6 | const Header = "OGLGraphics.h" 7 | 8 | type Graphics* {.importcpp: "Urho3D::Graphics", header: Header.} = object 9 | 10 | proc getHeight*(g: var Graphics): cint {. 11 | importcpp: "GetHeight", header: Header.} 12 | proc getWidth*(g: var Graphics): cint {. 13 | importcpp: "GetWidth", header: Header.} 14 | proc getRGBAFormat*(): cuint {. 15 | importcpp: "Graphics::GetRGBAFormat", header: Header.} 16 | -------------------------------------------------------------------------------- /modules/graphics/graphicsimpl.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | when defined(URHO3D_OPENGL): 4 | import 5 | openGL/OGLGraphicsImpl 6 | 7 | else: 8 | import 9 | direct3D9/D3D9GraphicsImpl 10 | -------------------------------------------------------------------------------- /modules/graphics/rendersurface.nim: -------------------------------------------------------------------------------- 1 | 2 | when defined(windows): 3 | type RenderSurface* {.importcpp: "Urho3D::RenderSurface", header: "D3D9RenderSurface.h".} = object 4 | else: 5 | type RenderSurface* {.importcpp: "Urho3D::RenderSurface", header: "OGLRenderSurface.h".} = object 6 | -------------------------------------------------------------------------------- /modules/graphics/shaderprogram.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | when defined(URHO3D_OPENGL): 4 | import 5 | openGL/OGLShaderProgram 6 | -------------------------------------------------------------------------------- /modules/graphics/shadervariation.nim: -------------------------------------------------------------------------------- 1 | 2 | when defined(windows): 3 | type ShaderVariation* {.importcpp: "Urho3D::ShaderVariation", header: "D3D9ShaderVariation.h".} = object 4 | else: 5 | type ShaderVariation* {.importcpp: "Urho3D::ShaderVariation", header: "OGLShaderVariation.h".} = object 6 | -------------------------------------------------------------------------------- /modules/graphics/tangent.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | urho3D 5 | 6 | 7 | proc generateTangents*(vertexData: pointer; vertexSize: cuint; 8 | indexData: pointer; indexSize: cuint; indexStart: cuint; 9 | indexCount: cuint; normalOffset: cuint; 10 | texCoordOffset: cuint; tangentOffset: cuint) {. 11 | importcpp: "Urho3D::GenerateTangents(@)", header: "Tangent.h".} -------------------------------------------------------------------------------- /modules/graphics/texturecube.nim: -------------------------------------------------------------------------------- 1 | 2 | when defined(windows): 3 | type TextureCube* {.importcpp: "Urho3D::TextureCube", header: "D3D9TextureCube.h".} = object 4 | else: 5 | type TextureCube* {.importcpp: "Urho3D::TextureCube", header: "OGLTextureCube.h".} = object 6 | -------------------------------------------------------------------------------- /modules/graphics/vertexdeclaration.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | when not defined(URHO3D_OPENGL): 4 | import 5 | direct3D9/D3D9VertexDeclaration 6 | -------------------------------------------------------------------------------- /modules/graphics/viewport.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modules/graphics/viewport.nim -------------------------------------------------------------------------------- /modules/io/compression.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | urho3D 5 | 6 | discard "forward decl of Deserializer" 7 | discard "forward decl of Serializer" 8 | discard "forward decl of VectorBuffer" 9 | proc estimateCompressBound*(srcSize: cuint): cuint {. 10 | importcpp: "Urho3D::EstimateCompressBound(@)", header: "Compression.h".} 11 | 12 | proc compressData*(dest: pointer; src: pointer; srcSize: cuint): cuint {. 13 | importcpp: "Urho3D::CompressData(@)", header: "Compression.h".} 14 | 15 | proc decompressData*(dest: pointer; src: pointer; destSize: cuint): cuint {. 16 | importcpp: "Urho3D::DecompressData(@)", header: "Compression.h".} 17 | 18 | proc compressStream*(dest: var Serializer; src: var Deserializer): bool {. 19 | importcpp: "Urho3D::CompressStream(@)", header: "Compression.h".} 20 | 21 | proc decompressStream*(dest: var Serializer; src: var Deserializer): bool {. 22 | importcpp: "Urho3D::DecompressStream(@)", header: "Compression.h".} 23 | 24 | proc compressVectorBuffer*(src: var VectorBuffer): VectorBuffer {. 25 | importcpp: "Urho3D::CompressVectorBuffer(@)", header: "Compression.h".} 26 | 27 | proc decompressVectorBuffer*(src: var VectorBuffer): VectorBuffer {. 28 | importcpp: "Urho3D::DecompressVectorBuffer(@)", header: "Compression.h".} -------------------------------------------------------------------------------- /modules/io/ioevents.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | UrObject 5 | 6 | 7 | var E_LOGMESSAGE* {.importc: "E_LOGMESSAGE", header: "IOEvents.h".}: Urho3D.StringHash = "LogMessage" 8 | 9 | var P_MESSAGE* {.importc: "P_MESSAGE", header: "IOEvents.h".}: Urho3D.StringHash = "Message" 10 | 11 | 12 | var P_LEVEL* {.importc: "P_LEVEL", header: "IOEvents.h".}: Urho3D.StringHash = "Level" 13 | 14 | 15 | 16 | var E_ASYNCEXECFINISHED* {.importc: "E_ASYNCEXECFINISHED", header: "IOEvents.h".}: Urho3D.StringHash = "AsyncExecFinished" 17 | 18 | var P_REQUESTID* {.importc: "P_REQUESTID", header: "IOEvents.h".}: Urho3D.StringHash = "RequestID" 19 | 20 | 21 | var P_EXITCODE* {.importc: "P_EXITCODE", header: "IOEvents.h".}: Urho3D.StringHash = "ExitCode" 22 | 23 | -------------------------------------------------------------------------------- /modules/io/macfilewatcher.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | proc checkMinimalVersion*(major: cint; minor: cint): bool {. 4 | importcpp: "CheckMinimalVersion(@)", header: "MacFileWatcher.h".} 5 | 6 | proc isFileWatcherSupported*(): bool {.importcpp: "IsFileWatcherSupported(@)", 7 | header: "MacFileWatcher.h".} 8 | 9 | proc createFileWatcher*(pathname: cstring; watchSubDirs: bool): pointer {. 10 | importcpp: "CreateFileWatcher(@)", header: "MacFileWatcher.h".} 11 | 12 | proc closeFileWatcher*(watcher: pointer) {.importcpp: "CloseFileWatcher(@)", 13 | header: "MacFileWatcher.h".} 14 | 15 | proc readFileWatcher*(watcher: pointer): cstring {. 16 | importcpp: "ReadFileWatcher(@)", header: "MacFileWatcher.h".} -------------------------------------------------------------------------------- /modules/io/memorybuffer.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | deserializer, serializer, vector 5 | 6 | 7 | type 8 | MemoryBuffer* {.importcpp: "Urho3D::MemoryBuffer", header: "MemoryBuffer.h".} = object of Deserializer 9 | buffer* {.importc: "buffer_".}: ptr cuchar 10 | readOnly* {.importc: "readOnly_".}: bool 11 | 12 | 13 | proc constructMemoryBuffer*(data: pointer; size: cuint): MemoryBuffer {. 14 | importcpp: "Urho3D::MemoryBuffer(@)", header: "MemoryBuffer.h", constructor.} 15 | proc constructMemoryBuffer*(data: PODVector[cuchar]): MemoryBuffer {. 16 | importcpp: "Urho3D::MemoryBuffer(@)", header: "MemoryBuffer.h", constructor.} 17 | proc read*(this: var MemoryBuffer; dest: pointer; size: cuint): cuint {. 18 | importcpp: "Read", header: "MemoryBuffer.h".} 19 | proc seek*(this: var MemoryBuffer; position: cuint): cuint {.importcpp: "Seek", 20 | header: "MemoryBuffer.h".} 21 | proc write*(this: var MemoryBuffer; data: pointer; size: cuint): cuint {. 22 | importcpp: "Write", header: "MemoryBuffer.h".} 23 | proc getData*(this: var MemoryBuffer): ptr cuchar {.importcpp: "GetData", 24 | header: "MemoryBuffer.h".} 25 | proc isReadOnly*(this: var MemoryBuffer): bool {.importcpp: "IsReadOnly", 26 | header: "MemoryBuffer.h".} 27 | -------------------------------------------------------------------------------- /modules/io/rwopswrapper.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | file 5 | 6 | 7 | type 8 | RWOpsWrapper* {.importcpp: "Urho3D::RWOpsWrapper", header: "RWOpsWrapper.h".}[T] = object 9 | ops* {.importc: "ops_".}: SDL_RWops 10 | 11 | 12 | proc constructRWOpsWrapper*[T](`object`: var T): RWOpsWrapper[T] {.constructor, 13 | importcpp: "Urho3D::RWOpsWrapper(@)", header: "RWOpsWrapper.h".} 14 | proc getRWOps*[T](this: var RWOpsWrapper[T]): ptr SDL_RWops {. 15 | importcpp: "GetRWOps", header: "RWOpsWrapper.h".} 16 | -------------------------------------------------------------------------------- /modules/math/random.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | proc setRandomSeed*(seed: cuint) {.importcpp: "Urho3D::SetRandomSeed(@)", 4 | header: "Random.h".} 5 | 6 | proc getRandomSeed*(): cuint {.importcpp: "Urho3D::GetRandomSeed(@)", 7 | header: "Random.h".} 8 | 9 | proc rand*(): cint {.importcpp: "Urho3D::Rand(@)", header: "Random.h".} 10 | 11 | proc randStandardNormal*(): cfloat {.importcpp: "Urho3D::RandStandardNormal(@)", 12 | header: "Random.h".} -------------------------------------------------------------------------------- /modules/navigation/navigable.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | component 5 | 6 | 7 | type 8 | Navigable* {.importcpp: "Urho3D::Navigable", header: "Navigable.h".} = object of Component 9 | recursive* {.importc: "recursive_".}: bool 10 | 11 | 12 | proc getType*(this: Navigable): Urho3D.StringHash {.noSideEffect, 13 | importcpp: "GetType", header: "Navigable.h".} 14 | proc getBaseType*(this: Navigable): Urho3D.StringHash {.noSideEffect, 15 | importcpp: "GetBaseType", header: "Navigable.h".} 16 | proc getTypeName*(this: Navigable): Urho3D.UrString {.noSideEffect, 17 | importcpp: "GetTypeName", header: "Navigable.h".} 18 | proc getTypeStatic*(): Urho3D.StringHash {. 19 | importcpp: "Urho3D::Navigable::GetTypeStatic(@)", header: "Navigable.h".} 20 | proc getTypeNameStatic*(): Urho3D.UrString {. 21 | importcpp: "Urho3D::Navigable::GetTypeNameStatic(@)", header: "Navigable.h".} 22 | proc constructNavigable*(context: ptr Context): Navigable {.constructor, 23 | importcpp: "Urho3D::Navigable(@)", header: "Navigable.h".} 24 | proc destroyNavigable*(this: var Navigable) {.importcpp: "#.~Navigable()", 25 | header: "Navigable.h".} 26 | proc registerObject*(context: ptr Context) {. 27 | importcpp: "Urho3D::Navigable::RegisterObject(@)", header: "Navigable.h".} 28 | proc setRecursive*(this: var Navigable; enable: bool) {. 29 | importcpp: "SetRecursive", header: "Navigable.h".} 30 | proc isRecursive*(this: Navigable): bool {.noSideEffect, 31 | importcpp: "IsRecursive", header: "Navigable.h".} 32 | -------------------------------------------------------------------------------- /modules/network/controls.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | variant 5 | 6 | 7 | type 8 | Controls* {.importcpp: "Urho3D::Controls", header: "Controls.h".} = object 9 | buttons* {.importc: "buttons_".}: cuint 10 | yaw* {.importc: "yaw_".}: cfloat 11 | pitch* {.importc: "pitch_".}: cfloat 12 | extraData* {.importc: "extraData_".}: VariantMap 13 | 14 | 15 | proc constructControls*(): Controls {.importcpp: "Urho3D::Controls(@)", 16 | constructor, header: "Controls.h".} 17 | proc destroyControls*(this: var Controls) {.importcpp: "#.~Controls()", 18 | header: "Controls.h".} 19 | proc reset*(this: var Controls) {.importcpp: "Reset", header: "Controls.h".} 20 | proc set*(this: var Controls; buttons: cuint; down: bool = true) {. 21 | importcpp: "Set", header: "Controls.h".} 22 | proc isDown*(this: Controls; button: cuint): bool {.noSideEffect, 23 | importcpp: "IsDown", header: "Controls.h".} 24 | proc isDown*(this: Controls; button: cint): bool {.noSideEffect, 25 | importcpp: "IsDown", header: "Controls.h".} 26 | 27 | proc isPressed*(this: Controls; button: cuint; previousControls: Controls): bool {. 28 | noSideEffect, importcpp: "IsPressed", header: "Controls.h".} 29 | proc isPressed*(this: Controls; button: cint; previousControls: Controls): bool {. 30 | noSideEffect, importcpp: "IsPressed", header: "Controls.h".} 31 | -------------------------------------------------------------------------------- /modules/physics/physicsutils.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | quaternion, vector3 5 | 6 | proc toBtVector3*(vector: Vector3): BtVector3 {.inline.} 7 | proc toBtQuaternion*(quaternion: Quaternion): BtQuaternion {.inline.} 8 | proc toVector3*(vector: BtVector3): Vector3 {.inline.} 9 | proc toQuaternion*(quaternion: BtQuaternion): Quaternion {.inline.} 10 | proc hasWorldScaleChanged*(oldWorldScale: Vector3; newWorldScale: Vector3): bool {. 11 | inline.} -------------------------------------------------------------------------------- /modules/resource/decompress.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | image 5 | 6 | 7 | proc decompressImageDXT*(dest: ptr cuchar; blocks: pointer; width: cint; 8 | height: cint; depth: cint; format: CompressedFormat) {. 9 | importcpp: "Urho3D::DecompressImageDXT(@)", header: "Decompress.h".} 10 | 11 | proc decompressImageETC*(dest: ptr cuchar; blocks: pointer; width: cint; 12 | height: cint) {. 13 | importcpp: "Urho3D::DecompressImageETC(@)", header: "Decompress.h".} 14 | 15 | proc decompressImagePVRTC*(dest: ptr cuchar; blocks: pointer; width: cint; 16 | height: cint; format: CompressedFormat) {. 17 | importcpp: "Urho3D::DecompressImagePVRTC(@)", header: "Decompress.h".} 18 | 19 | proc flipBlockVertical*(dest: ptr cuchar; src: ptr cuchar; 20 | format: CompressedFormat) {. 21 | importcpp: "Urho3D::FlipBlockVertical(@)", header: "Decompress.h".} 22 | 23 | proc flipBlockHorizontal*(dest: ptr cuchar; src: ptr cuchar; 24 | format: CompressedFormat) {. 25 | importcpp: "Urho3D::FlipBlockHorizontal(@)", header: "Decompress.h".} -------------------------------------------------------------------------------- /modules/scene/animationdefs.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | type 5 | WrapMode* {.importcpp: "Urho3D::WrapMode".} = enum 6 | WM_LOOP = 0, WM_ONCE, WM_CLAMP 7 | 8 | -------------------------------------------------------------------------------- /modules/scene/replicationstate.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | attribute, hashMap, hashSet, ptrs, stringHash, vector, variant, connection 5 | 6 | 7 | proc constructDirtyBits*(): DirtyBits {.importcpp: "Urho3D::DirtyBits(@)", 8 | constructor, header: "ReplicationState.h".} 9 | proc constructDirtyBits*(bits: DirtyBits): DirtyBits {.constructor, 10 | importcpp: "Urho3D::DirtyBits(@)", header: "ReplicationState.h".} 11 | proc set*(this: var DirtyBits; index: cuint) {.importcpp: "Set", 12 | header: "ReplicationState.h".} 13 | proc clear*(this: var DirtyBits; index: cuint) {.importcpp: "Clear", 14 | header: "ReplicationState.h".} 15 | proc clearAll*(this: var DirtyBits) {.importcpp: "ClearAll", 16 | header: "ReplicationState.h".} 17 | proc isSet*(this: DirtyBits; index: cuint): bool {.noSideEffect, 18 | importcpp: "IsSet", header: "ReplicationState.h".} 19 | proc count*(this: DirtyBits): cuint {.noSideEffect, importcpp: "Count", 20 | header: "ReplicationState.h".} 21 | 22 | proc constructNodeReplicationState*(): NodeReplicationState {.constructor, 23 | importcpp: "Urho3D::NodeReplicationState(@)", header: "ReplicationState.h".} 24 | 25 | proc clear*(this: var SceneReplicationState) {.importcpp: "Clear", 26 | header: "ReplicationState.h".} 27 | -------------------------------------------------------------------------------- /modules/scene/sceneresolver.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | hashMap, ptrs, component, stringhash 5 | 6 | discard "forward decl of Component" 7 | discard "forward decl of Node" 8 | 9 | 10 | proc constructSceneResolver*(): SceneResolver {.constructor, 11 | importcpp: "Urho3D::SceneResolver(@)", header: "SceneResolver.h".} 12 | proc destroySceneResolver*(this: var SceneResolver) {. 13 | importcpp: "#.~SceneResolver()", header: "SceneResolver.h".} 14 | proc reset*(this: var SceneResolver) {.importcpp: "Reset", 15 | header: "SceneResolver.h".} 16 | proc addNode*(this: var SceneResolver; oldID: cuint; node: ptr component.Node) {. 17 | importcpp: "AddNode", header: "SceneResolver.h".} 18 | proc addComponent*(this: var SceneResolver; oldID: cuint; 19 | component: ptr Component) {.importcpp: "AddComponent", 20 | header: "SceneResolver.h".} 21 | proc resolve*(this: var SceneResolver) {.importcpp: "Resolve", 22 | header: "SceneResolver.h".} 23 | -------------------------------------------------------------------------------- /modules/ui/fontfacebitmap.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | fontFace 5 | 6 | discard "forward decl of Image" 7 | discard "forward decl of Serializer" 8 | type 9 | FontFaceBitmap* {.importcpp: "Urho3D::FontFaceBitmap", 10 | header: "FontFaceBitmap.h".} = object of FontFace 11 | 12 | 13 | proc constructFontFaceBitmap*(font: ptr Font): FontFaceBitmap {.constructor, 14 | importcpp: "Urho3D::FontFaceBitmap(@)", header: "FontFaceBitmap.h".} 15 | proc destroyFontFaceBitmap*(this: var FontFaceBitmap) {. 16 | importcpp: "#.~FontFaceBitmap()", header: "FontFaceBitmap.h".} 17 | proc load*(this: var FontFaceBitmap; fontData: ptr cuchar; fontDataSize: cuint; 18 | pointSize: cint): bool {.importcpp: "Load", 19 | header: "FontFaceBitmap.h".} 20 | proc load*(this: var FontFaceBitmap; fontFace: ptr FontFace; usedGlyphs: bool): bool {. 21 | importcpp: "Load", header: "FontFaceBitmap.h".} 22 | proc save*(this: var FontFaceBitmap; dest: var Serializer; pontSize: cint): bool {. 23 | importcpp: "Save", header: "FontFaceBitmap.h".} 24 | -------------------------------------------------------------------------------- /modules/ui/fontfacefreetype.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | fontFace 5 | 6 | discard "forward decl of FreeTypeLibrary" 7 | discard "forward decl of Texture2D" 8 | type 9 | FontFaceFreeType* {.importcpp: "Urho3D::FontFaceFreeType", 10 | header: "FontFaceFreeType.h".} = object of FontFace 11 | freeType* {.importc: "freeType_".}: SharedPtr[FreeTypeLibrary] 12 | face* {.importc: "face_".}: pointer 13 | hasMutableGlyph* {.importc: "hasMutableGlyph_".}: bool 14 | ascender* {.importc: "ascender_".}: cint 15 | allocator* {.importc: "allocator_".}: AreaAllocator 16 | 17 | 18 | proc constructFontFaceFreeType*(font: ptr Font): FontFaceFreeType {.constructor, 19 | importcpp: "Urho3D::FontFaceFreeType(@)", header: "FontFaceFreeType.h".} 20 | proc destroyFontFaceFreeType*(this: var FontFaceFreeType) {. 21 | importcpp: "#.~FontFaceFreeType()", header: "FontFaceFreeType.h".} 22 | proc load*(this: var FontFaceFreeType; fontData: ptr cuchar; 23 | fontDataSize: cuint; pointSize: cint): bool {.importcpp: "Load", 24 | header: "FontFaceFreeType.h".} 25 | proc getGlyph*(this: var FontFaceFreeType; c: cuint): ptr FontGlyph {. 26 | importcpp: "GetGlyph", header: "FontFaceFreeType.h".} 27 | proc hasMutableGlyphs*(this: FontFaceFreeType): bool {.noSideEffect, 28 | importcpp: "HasMutableGlyphs", header: "FontFaceFreeType.h".} 29 | -------------------------------------------------------------------------------- /modules/ui/uibatch.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3dicc/Urhonimo/e2b85ff5ed8efd24711265772d15c136c5b26aaa/modules/ui/uibatch.nim -------------------------------------------------------------------------------- /modules/urho2d/physicsutils2d.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 4 | color, vector2, vector3 5 | 6 | proc toColor*(color: B2Color): Color {.inline.} 7 | proc toB2Vec2*(vector: Vector2): B2Vec2 {.inline.} 8 | proc toVector2*(vec2: B2Vec2): Vector2 {.inline.} 9 | proc toB2Vec2*(vector: Vector3): B2Vec2 {.inline.} 10 | proc toVector3*(vec2: B2Vec2): Vector3 {.inline.} 11 | 12 | #proc !=*(left: B2Vec2; right: B2Vec2): bool {.inline.} 13 | -------------------------------------------------------------------------------- /modules/urho2d/urho2d.nim: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | proc registerUrho2DLibrary*(context: ptr Context) {. 5 | importcpp: "Urho3D::RegisterUrho2DLibrary(@)", header: "Urho2D.h".} -------------------------------------------------------------------------------- /modules/urhoinclude.nim: -------------------------------------------------------------------------------- 1 | {.emit: """/*INCLUDESECTION*/ 2 | 3 | #include "Urho3D/Urho3D.h" 4 | """.} 5 | -------------------------------------------------------------------------------- /modules/urholink.nim: -------------------------------------------------------------------------------- 1 | when defined(windows): 2 | when defined(release): 3 | {.link: r"..\..\urho3d-1.4\build\lib\Urho3D.lib".} 4 | else: 5 | {.link: r"..\..\urho3d-1.4\build\lib\Urho3D_d.lib".} 6 | {.link: r"C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3d9.lib".} 7 | {.link: r"C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3dcompiler.lib".} 8 | {.link: r"kernel32.lib".} 9 | {.link: r"user32.lib".} 10 | {.link: r"winmm.lib".} 11 | {.link: r"gdi32.lib".} 12 | {.link: r"winspool.lib".} 13 | {.link: r"shell32.lib".} 14 | {.link: r"ole32.lib".} 15 | {.link: r"oleaut32.lib".} 16 | {.link: r"version.lib".} 17 | 18 | {.link: r"uuid.lib".} 19 | {.link: r"comdlg32.lib".} 20 | {.link: r"advapi32.lib".} 21 | {.link: r"imm32.lib".} 22 | {.link: r"ws2_32.lib".} 23 | {.link: r"dbghelp.lib".} 24 | {.passL: r"/NODEFAULTLIB:library".} 25 | when defined(linux): 26 | {.passL: "../lib/libUrho3D.a".} 27 | {.passL: "-pthread".} 28 | {.passL: "-lGL".} 29 | {.passL: "-lX11".} 30 | when defined(macosx): 31 | {.passL: "../../Urho3D/build/lib/libUrho3D.a".} 32 | {.passL: "-framework OpenGL".} 33 | {.passL: "-framework CoreAudio".} 34 | {.passL: "-framework AudioToolbox".} 35 | {.passL: "-framework AudioUnit".} 36 | {.passL: "-framework Carbon".} 37 | {.passL: "-framework IOKit".} 38 | {.passL: "-framework Cocoa".} 39 | {.passL: "-framework ForceFeedback".} 40 | --------------------------------------------------------------------------------