Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: thogil/Myre
base: master
Checking mergeability… Don't worry, you can still create the pull request.
This comparison is big! We're only showing the most recent 250 commits
Commits on Jun 23, 2012
@martindevans martindevans Made gamelauncher have a method to run a given instance of a game, in…
…stead of creating one itself

Signed-off-by: Martin Evans <>
@martindevans martindevans Fixed bugs in shaders (

Signed-off-by: Martin Evans <>
Commits on Jun 24, 2012
@martindevans martindevans Fixed a memory leak in tone map component
Better distributed random data for SSAO

Signed-off-by: Martin Evans <>
@martindevans martindevans Removed a load of useless methods from IGeometryProvider
Added BaseVertex and StartIndex to Mesh class
Made ModelInstance use StartIndex and BaseVertex parameters from mesh

Signed-off-by: Martin Evans <>
Commits on Jun 25, 2012
@martindevans martindevans Added MinVertexIndex to Mesh
Made ModelInstance.Draw respect MinVertexIndex of mesh

Signed-off-by: Martin Evans <>
Commits on Jul 14, 2012
@martindevans martindevans Added the ability to print null values to the command console
Added an "Active" property to spotlights, enabling them to be easily turned off
Fixed a bad bit of code in ToneMapComponent.cs which fiddled with the graphics device in the constructor, which made it impossible to construct in an asynchronous way

Signed-off-by: Martin Evans <>
Commits on Aug 06, 2012
@martindevans martindevans Removed default null parameter from initialisationData
Signed-off-by: Martin Evans <>
Commits on Sep 12, 2012
@martindevans martindevans Reformatted PointLight.cs and AmbientLight.cs to properly load data d…
…uring init

Added an extension to Entities in the new Myre.Entities/Extensions/INamedDataProviderExtensions.cs class which tries to copy data from a named data provider to a given property (if the provider can find a box of the given name)

Signed-off-by: Martin Evans <>
@martindevans martindevans Modified EntityDescription.cs to load initial values into properties(…
…if no initial value is specified it is set to default(T)

Signed-off-by: Martin Evans <>
@martindevans martindevans Applied R# suggestions to EntityDescription.cs
Signed-off-by: Martin Evans <>
Commits on Sep 13, 2012
@martindevans martindevans Fixed initial value type assertion to use the correct check (IsAssign…
…ableFrom not IsInstanceOfType)

Signed-off-by: Martin Evans <>
@martindevans martindevans Made boxed value store IEnumerable
Signed-off-by: Martin Evans <>
@martindevans martindevans Restored Myre.Physics2 from history
Applied many many R# suggestions

Signed-off-by: Martin Evans <>
@martindevans martindevans Initialised sensible values for mass and inertia tensor
Initialised PhysicsEngine properly

Signed-off-by: Martin Evans <>
Commits on Sep 14, 2012
@martindevans martindevans Reverted collision back to original version (still broken)
Made Transform use ProcessBehaviour

Signed-off-by: Martin Evans <>
Commits on Sep 15, 2012
@martindevans martindevans Initialised IsDirty to true for Transform
Signed-off-by: Martin Evans <>
Commits on Sep 16, 2012
@martindevans martindevans Managing references to Ninject through nuget - this almost certainly …
…prevent myre compiling on xbox for now

Signed-off-by: Martin Evans <>
@martindevans martindevans Changed x86 version of Myre to use latest version of Ninject through …

Signed-off-by: Martin Evans <>
Commits on Sep 17, 2012
@martindevans martindevans Moved Myre.Physics2 into Myre.Physics2D
Added a lock to the static dictionary in Scene.cs

Signed-off-by: Martin Evans <>
Commits on Sep 25, 2012
@martindevans martindevans Added a method comment to Box.cs
Added a new extension method to INamedDataProvider which tries to get a value and calls an action if that value exists

Signed-off-by: Martin Evans <>
Commits on Oct 06, 2012
@martindevans martindevans Added collision groups to Myre.physics2D
changed default namespace for physics2D from physics to physics2D

Signed-off-by: Martin Evans <>
Commits on Oct 09, 2012
@martindevans martindevans Added support to gamelauncher for launching things which do not exten…
…d game

Signed-off-by: Martin Evans <>
Commits on Oct 13, 2012
@martindevans martindevans Added events whenever a collision impulse is applied, not certain the…
…y're sending out the most useful data atm

Signed-off-by: Martin Evans <>
@martindevans martindevans Added an event for collision impulses
Signed-off-by: Martin Evans <>
Commits on Oct 18, 2012
@martindevans martindevans Copied data from initialisation data object in sunlight
Updated sunlight manager to actually add and remove lights!
Commits on Nov 07, 2012
@martindevans martindevans Improved object disposal
 - Disposing the properties of an entity can now be deferred (allowing events containing the dead entity to be passing an entity with useful property data intact)

Signed-off-by: Martin Evans <>
@martindevans martindevans Added a new shutdown system to entities, allowing data to be passed a…
…long to the dispose method about the death of this entity

Signed-off-by: Martin Evans <>
Commits on Dec 18, 2012
@martindevans martindevans Corrected some spelling and grammar in Command Console
Added an Initialised method to behaviours, which is called to indicate that all behaviours have had Initialise called

Signed-off-by: Martin Evans <>
Commits on Dec 28, 2012
@martindevans martindevans Added an is_invisible property to model instances
Signed-off-by: Martin Evans <>
@martindevans martindevans Enabled NCrunch for Myre.Testing and Added a tes project to Myre.Testing
Added depth sorting for model instances and render batches

Signed-off-by: Martin Evans <>
Commits on Dec 29, 2012
@martindevans martindevans Updated GraphicsTests to latest Ninject via Nuget
cleaned up some minor code quality issues in view and IRenderable

Signed-off-by: Martin Evans <>
Commits on Jan 04, 2013
@martindevans martindevans Changed IsHidden property to IsInvisible for ModelInstance.cs
Made ModelInstance.cs have a name
Made ModelData.cs disposable
Made Mesh.cs disposable
Given based untyped property a PropertySet event

Signed-off-by: Martin Evans <>
Commits on Jan 10, 2013
@martindevans martindevans Added Myre.Tests bin and obj to ignore
Signed-off-by: Martin Evans <>
Commits on Jan 12, 2013
@martindevans martindevans Modified EventService so that event listeners are invoked in reverse …
…order of subscription (most recent subscriber first)

Cleaned up EventService code formatting to R# standards
Cleaned up spinlock a little

Signed-off-by: Martin Evans <>
Commits on Jan 18, 2013
@martindevans martindevans Neatened up RenderPlan.cs (according to R#)
Added a property to get the names of all resources in a render plan to RenderPlan.cs

Signed-off-by: Martin Evans <>
Commits on Feb 19, 2013
@martindevans martindevans Created base interface IModelData which can handle models which change
Signed-off-by: Martin Evans <>
@martindevans martindevans Made model instance mutable, meshes can be added an removed
Signed-off-by: Martin Evans <>
Commits on Mar 21, 2013
@martindevans martindevans Applied R# suggestions to the entire Myre.Graphics.csproj
Signed-off-by: Martin Evans <>
@martindevans martindevans Applied R# suggestions to entire of Myre 0_0
(x86) Myre has NO issues at all.
(WP7) Does not currently build
(360) Has some issues, none important

Signed-off-by: Martin Evans <>
@martindevans martindevans Fixed the graphics tests to be inline with some of the minor changes …
…caused by implementing R# changes

Signed-off-by: Martin Evans <>
Commits on Mar 25, 2013
@martindevans martindevans Enabled Nuget package fetch on build
Added Octree based collections (moved in from Heist)
Enabled ncrunch for tests, ignored all the (360) and (WP7) projects

Signed-off-by: Martin Evans <>
@martindevans martindevans Removed ncrunch cache from git
Signed-off-by: Martin Evans <>
Commits on Apr 09, 2013
@martindevans martindevans Added static random to Myre
Added TypeUnions (safe ways to bitwise convert types) to Myre
Modified ProcessBehaviour to support updates less frequently than every frame

Signed-off-by: Martin Evans <>
Commits on Apr 10, 2013
@martindevans martindevans Applied some R# suggestions
Signed-off-by: Martin Evans <>
Commits on Apr 17, 2013
@martindevans martindevans Added constructor with no default values back into AntiAliasComponent…
….cs (should never have been removed in the first place)

Signed-off-by: Martin Evans <>
Commits on May 01, 2013
@martindevans martindevans Refactored ParticleComponent to a general TranslucentComponent
Signed-off-by: Martin Evans <>
@martindevans martindevans Modified translucency renderer stage to use the normal geometry suppl…
…ies with the "translucent" stage

Signed-off-by: Martin Evans <>
Commits on May 05, 2013
@martindevans martindevans Fixed spotlight so that it supports projective texturing even when sh…
…adowing is disabled

Added in half developed PlaneLight.cs (a sheet light, which colours pixels in the world by the colour of the nearest pixel on the plane

Signed-off-by: Martin Evans <>
Commits on May 14, 2013
@martindevans martindevans Added type unions for sbyte and Decimal
Signed-off-by: Martin Evans <>
Commits on May 24, 2013
@martindevans martindevans Modified the TimeService to be threadsafe
Signed-off-by: Martin Evans <>
Commits on Jun 21, 2013
@martindevans martindevans Reduced the edge detect threshold
Signed-off-by: Martin Evans <>
Commits on Jun 27, 2013
@martindevans martindevans Added animation support to Myre.Graphics
Signed-off-by: Martin Evans <>
@martindevans martindevans Added some more content processor options (selecting effects) to the …

Added a light (with shadows) to the AnimatedDude demo

Signed-off-by: Martin Evans <>
@martindevans martindevans Modified the Animated behaviour to support multiple blended animations
Signed-off-by: Martin Evans <>
Commits on Jun 28, 2013
@martindevans martindevans Modified animation system. Now the model file doesn't read any animat…
…ions, and is expected in the T-Pose.

Added an animation clip processor which can be set on an fbx file and *only* reads animations from it (which can then be applied to another model).

Signed-off-by: Martin Evans <>
Commits on Jul 01, 2013
@martindevans martindevans Updated the animation test with a new character (zoe) who runs throug…
…h a sequence of animations and then stands idling

Added queueing of actions to Animated.cs

Signed-off-by: Martin Evans <>
Commits on Jul 05, 2013
@martindevans martindevans Modified the material content system to manually load effects from co…
…ntent manager (instead of leaving it up to the arbitrary internals of the XNA default ContentManager)

Signed-off-by: Martin Evans <>
@martindevans martindevans Modified the model processor to automatically DXT compress diffuse an…
…d specular maps, but not normal maps

Signed-off-by: Martin Evans <>
Commits on Aug 14, 2013
@martindevans martindevans Marked behaviour as MarshalByRefObject
 - This means that behaviours can be directly passed across AppDomain boundaries

Signed-off-by: Martin Evans <>
Commits on Aug 15, 2013
@martindevans martindevans Modified behaviour type to require that type OR factory is set when c…
…onstructing a behaviour (type is not needed if there is a factory)

Signed-off-by: Martin Evans <>
Commits on Aug 18, 2013
@martindevans martindevans Modified GetBehaviour<T> to accept any type (even not derived from Be…
…haviour) so interfaces can be passed in

Signed-off-by: Martin Evans <>
Commits on Aug 23, 2013
@martindevans martindevans Implemented MarshalByRefObject on some types
Signed-off-by: Martin Evans <>
Commits on Aug 27, 2013
@martindevans martindevans Added INamedDataConsumer.cs to mirror INamedDataProvider
Added some sensible default colors to AmbientLight

Signed-off-by: Martin Evans <>
Commits on Aug 30, 2013
@martindevans martindevans Fixed a crash caused by calling a null event handler
Signed-off-by: Martin Evans <>
Commits on Sep 02, 2013
@martindevans martindevans Made RendererMetadata.cs extend NamedBoxCollection instead of BoxedVa…
…lueStore<String> (functionally almost exactly the same)

Signed-off-by: Martin Evans <>
Commits on Sep 05, 2013
@martindevans martindevans Changed NamedBoxCollection.cs to directly provide values
 - Changed many consumers of NamedBoxCollection.cs to use the new interface

Signed-off-by: Martin Evans <>
Commits on Sep 30, 2013
@martindevans martindevans Removed old serialisation code
Added some helper methods
Fixed graphics tests
Added (very basic) ring buffer

Signed-off-by: Martin Evans <>
@martindevans martindevans Fixed a bug in debugging CommandEngine.cs which caused it to crash wh…
…en an option value was fetched

Signed-off-by: Martin Evans <>
Commits on Oct 03, 2013
@martindevans martindevans updated references
Signed-off-by: Martin Evans <>
Commits on Oct 07, 2013
@martindevans martindevans Modified skybox renderer to be more robust
made views a processbehaviour so they can be more usefully extended

Signed-off-by: Martin Evans <>
Commits on Oct 09, 2013
@martindevans martindevans Removed all references to trace listener in command console, instead …
…a separate nlog listener (in Placeholder) is used to route nlog message to console

Signed-off-by: Martin Evans <>
Commits on Oct 15, 2013
@martindevans martindevans Modified event handlers to return a value, which is passed on to subs…
…equent handlers as the event data (allowing struct event data to be modified as handlers execute)

Signed-off-by: Martin Evans <>
Commits on Oct 26, 2013
@martindevans martindevans Modified ambient light shader to sample SSAO in a different way (stup…
…id driver bug workaround)

Signed-off-by: Martin Evans <>
Commits on Oct 27, 2013
@martindevans martindevans Changed ambient light to work around a bug in nvidia drivers
Signed-off-by: Martin Evans <>
Commits on Oct 28, 2013
@martindevans martindevans Fixed paths in AmbientLight for fx headers
Signed-off-by: Martin Evans <>
Commits on Nov 05, 2013
@martindevans martindevans Modified game launcher to catch exceptions in the constructor of ILau…

Signed-off-by: Martin Evans <>
Commits on Nov 06, 2013
@martindevans martindevans Removed a TODO comment that wasn't needed
Signed-off-by: Martin Evans <>
Commits on Nov 07, 2013
@martindevans martindevans Slightly changed constructors of clip and keyframe, exposing them to …
…allow construction of clips

Signed-off-by: Martin Evans <>
Commits on Nov 11, 2013
@martindevans martindevans improved the handling of names in lights
Signed-off-by: Martin Evans <>
Commits on Nov 12, 2013
@martindevans martindevans Added more sensible defaults to SunLight
Signed-off-by: Martin Evans <>
@martindevans martindevans Made boxes have a Value property rather than field, which has require…
…d a minor change to point and spot lights (can't reference a property by ref)

Signed-off-by: Martin Evans <>
Commits on Nov 19, 2013
@martindevans martindevans Added a copy of the MIT license
Signed-off-by: Martin Evans <>
@martindevans martindevans Added a nuspec file and published a nuget package for myre
Signed-off-by: Martin Evans <>
@martindevans martindevans Added a nuspec package
Signed-off-by: Martin Evans <>
@martindevans martindevans removed <references> from nuspec
Signed-off-by: Martin Evans <>
Commits on Nov 21, 2013
@martindevans martindevans Optimised references on a lot of projects
Added (hand written) nuspec files for all projects.

Signed-off-by: Martin Evans <>
@martindevans martindevans Modified EntityDescription to consider construction factories when co…
…mparing BehaviourData objects

Signed-off-by: Martin Evans <>
Commits on Nov 28, 2013
@martindevans martindevans exposed BehavioursIndex on entities, mapping from type to behaviours …
…assignable to that type

Signed-off-by: Martin Evans <>
Commits on Nov 29, 2013
@martindevans martindevans Modified Animated behaviour to optionally disable X, Y and Z translat…
…ion from the root bone

Signed-off-by: Martin Evans <>
Commits on Dec 02, 2013
@martindevans martindevans Deferred sunlights are broken. Shadows render only when the up vector…
… of the view points in the downward hemisphere

Signed-off-by: Martin Evans <>
Commits on Dec 03, 2013
@martindevans martindevans Made animation keyframes and clips serializable
made cascanding box properly TryGetValues from parent box
Made skybox properly use init data

Signed-off-by: Martin Evans <>
Commits on Dec 04, 2013
@martindevans martindevans Overhauled the particle system, rather than using specific emitters w…
…ith loads of duplicated code on them you use some very basic emitters and attach Initialisers which setup particles

Signed-off-by: Martin Evans <>
Commits on Dec 05, 2013
@martindevans martindevans Added basic particle system support to the content pipeline (see Part…
…iclesTest for an example of how to use it)

Signed-off-by: Martin Evans <>
Commits on Dec 06, 2013
@martindevans martindevans Moved the last bits of logic to do with setting up new particles into…
… their own initialisers (InterpolatedEntityPosition.cs and EntityVelocity.cs). EntityParticleEmitter.cs now *just* periodically creates particles. This should be moved out into spawners soon (handled by ParticleEmitter.cs in the same way as initialisers)

Signed-off-by: Martin Evans <>
@martindevans martindevans Implemented triggers, which cause a ParticleEmitter.cs to emit partic…
…les (at the moment Burst and Continuous). Totally removed EntityParticleEmitter.cs since all of its functionality has been moved into triggers and initialisers.

Signed-off-by: Martin Evans <>
Commits on Dec 11, 2013
@martindevans martindevans Fixed ProcessBehaviour.cs crashing if a process behaviour instance cr…
…eated a new one during update

Signed-off-by: Martin Evans <>
Commits on Dec 12, 2013
@martindevans martindevans Separate particle systems out into a particle system service so emitt…
…ers can all use the same systems behind the scene, saving me from constructing hundreds of systems when lots of small particle emitting entities are created. Resolves #3

Signed-off-by: Martin Evans <>
@martindevans martindevans Modified GraphicsTests to use new particle system for ParticlesTest.cs
Signed-off-by: Martin Evans <>
Commits on Dec 28, 2013
@martindevans martindevans Added quaternion extensions
Added an area calculator for IEnumerable<Vector2> representing a polygon
Modified ProcessBehaviour.cs to correctly set it's own name

Signed-off-by: Martin Evans <>
Commits on Dec 31, 2013
@martindevans martindevans Added an Int4 type (like Int3)
Rewritten ToString in Int3 to use string.format (need to do this for all implementations of ToString)
Added some more type unions

Signed-off-by: Martin Evans <>
Commits on Jan 02, 2014
@martindevans martindevans Added some extra extensions
Using NLerp instead of SLerp in Animated.cs

Signed-off-by: Martin Evans <>
Commits on Jan 04, 2014
@martindevans martindevans Added support for (dis)abling scaling from animation root bone
neatened up content pipeline project a little, moving things into separate namespaces mostly

Signed-off-by: Martin Evans <>
Commits on Jan 07, 2014
@martindevans martindevans Modified keyframes to store decomposed transform
Signed-off-by: Martin Evans <>
@martindevans martindevans Modified animation pipeline to pass through Transform objects (scale/…
…rotation/translation triples) which can be interpolated without matrix decomposition making the animation pipeline approximately 1 quadrillion times less sucky

Added linear interpolation of adjacent keyframes, meaning that we can...
...reduced sample rate of keyframes at content build time so that keyframes from the source which could instead be approximated with linear interpolation are dropped.

Signed-off-by: Martin Evans <>
Commits on Jan 08, 2014
@martindevans martindevans Modified PlayingClip.cs to correctly preserve excess time when loopin…
…g (eliminating a very noticeable judder when looping)

Added root bone setting to animations, all bones which are ancestors of the bone marked as root have all transformations discarded
Added a FixLooping setting to animations, which copies all keyframe data for non root bones from the first frame to the last, ensuring the animation loops properly
Modified Runtime Keyframes to use Transform instead of keeping the three transform values itself or in a matrix

Signed-off-by: Martin Evans <>
Commits on Jan 10, 2014
@martindevans martindevans Parallelized channel processing
Modified looping fixer to be more robust (it adds a frame in at the end timestamp if there isn't one for this channel)

Signed-off-by: Martin Evans <>
Commits on Jan 15, 2014
@martindevans martindevans Continued improvements on the animation system. Biggest change here i…
…s the model processor now generating bone aligned bounding boxes for all vertices attached to that bone (this data is put into SkinningData).

Also fixed some jitter associated with looping animations (more correctly handling various things when looping back to the start, for example root difference calculation)

Signed-off-by: Martin Evans <>
@martindevans martindevans Changes to content processing
Signed-off-by: Martin Evans <>
@martindevans martindevans Fixed myre model processor not baking some transforms that it should
Signed-off-by: Martin Evans <>
@martindevans martindevans Modified NamedBoxCollection and associated collections to use TypedNa…
…me.cs, which is a string and a generic type

Signed-off-by: Martin Evans <>
@martindevans martindevans Updated entity system to use TypedName everywhere
Removed Physics2D, it's not used/maintained anymore and it would have required lots of changes just to compile with this change

Signed-off-by: Martin Evans <>
@martindevans martindevans Modified properties created in construction context to always be appe…
…nded with the name of the behaviour that created them. E.g:

    CreateProperty<int>("Hello");    //Inside a behaviour with Name="World"

    CreateProperty<float>("Goodbye");  //Inside a behaviour with Name=null

Signed-off-by: Martin Evans <>
Commits on Jan 16, 2014
@martindevans martindevans Various small changes to make the TypedNames experience nicer
Signed-off-by: Martin Evans <>
@martindevans martindevans Removed implicit cast from String to TypedName
Added an operator to append a string to a TypedName

Signed-off-by: Martin Evans <>
Commits on Jan 20, 2014
@martindevans martindevans Modified texture finding in MyreModelProcessor to be more robust (if …
…one attempt fails, it tries the next)

Modified Animated to allow enqueuing a null clip, which will have the effect of cancelling a looping clip and forcing a fallback to either the next in the queue or to the DefaultClip

Signed-off-by: Martin Evans <>
Commits on Jan 22, 2014
@martindevans martindevans Added an optional parameter when constructing properties not to appen…
…d the behaviour name (defaults to appending name)

Signed-off-by: Martin Evans <>
@martindevans martindevans Moved GetImplementedTypes from being a private method in Entity.cs to…
… being an extensions to Type

Signed-off-by: Martin Evans <>
Commits on Jan 24, 2014
@martindevans martindevans Totally rebuilt how the nuget deploy system works. To deploy projects…
… you simply needs to run push-all.ps1 in the root folder and it will push nuget packages for all Myre projects

It will print a scary looking failure if you're trying to push a version that already exists. This is either because 1. you didn't change that project and everything is totally fine or 2. you forgot to change the version string in AssemblyInfo.cs for that project.

Signed-off-by: Martin Evans <>
@martindevans martindevans Changes to csproj caused by distancing Myre from Placeholder.*
Signed-off-by: Martin Evans <>
Commits on Jan 27, 2014
@martindevans martindevans Fixed references between projects
Modified animation currently playing to return the fading *in* animation (when possible)

Signed-off-by: Martin Evans <>
@martindevans martindevans Incremented version numbers for new released
Signed-off-by: Martin Evans <>
Commits on Feb 04, 2014
@martindevans martindevans Added ienumerable to INamedDataProvider
Modified how pool constructs singletons

Signed-off-by: Martin Evans <>
Commits on Feb 07, 2014
@martindevans martindevans Modified how GetValue cascades in CascadingBoxCollection
Signed-off-by: Martin Evans <>
Commits on Feb 10, 2014
@martindevans martindevans Added a new animation to testing (walk)
Signed-off-by: Martin Evans <>
@martindevans martindevans Slight changes to how animation frame deltas are calculated (hopefull…
…y fixing the slight stutter encountered in heist)

Signed-off-by: Martin Evans <>
Commits on Feb 17, 2014
@martindevans martindevans Clarified a comment in Animated.cs
Signed-off-by: Martin Evans <>
Commits on Feb 24, 2014
@martindevans martindevans Modified entity so that values in the initialisation data get automat…
…ically assigned to properties with the same name and an assignable type

Signed-off-by: Martin Evans <>
@martindevans martindevans Fixed a bug where a null init data would cause entity.Initialise to c…

Signed-off-by: Martin Evans <>
@martindevans martindevans Fixed a bug in initialisation auto copying where missing properties w…
…ould cause a nullreferenceexception

Signed-off-by: Martin Evans <>
@martindevans martindevans bumped assembly version on entities
Signed-off-by: Martin Evans <>
Commits on Feb 25, 2014
@martindevans martindevans Removed the feature of automatically copying from init data to proper…
…ties with the same name and assignable type

Signed-off-by: Martin Evans <>
Commits on Feb 26, 2014
@martindevans martindevans Saved resource context of renderer components so components can be in…
…spected for inputs and outputs after the fact

Signed-off-by: Martin Evans <>
@martindevans martindevans Exposed inputs and outputs properties instead of directly exposing th…
…e resource context

Signed-off-by: Martin Evans <>
Commits on Feb 28, 2014
@martindevans martindevans Tidied up internals of event service and added documentation on just …
…what the hell the event scope does

Signed-off-by: Martin Evans <>
Commits on Mar 24, 2014
@martindevans martindevans Added methods to find closest point on a bounding box
Signed-off-by: Martin Evans <>
Commits on Apr 06, 2014
@martindevans martindevans Fixed a bug in Array rotation
Signed-off-by: Martin Evans <>
Commits on Apr 07, 2014
@martindevans martindevans Added a method to test if a vector2 array represents a convex polygon
Signed-off-by: Martin Evans <>
Commits on Apr 08, 2014
@martindevans martindevans Modified IsConvex helper to handle lines of collinear points
Signed-off-by: Martin Evans <>
@martindevans martindevans Made IsConvex a little more robust - now using epsilons for what it c…
…onsiders a straight edge

Signed-off-by: Martin Evans <>
Commits on Apr 14, 2014
@martindevans martindevans Added active properties to PointLight and SunLight
Signed-off-by: Martin Evans <>
@martindevans martindevans Made TypedName castable to and from string (explicitly) dce49a5
Commits on Apr 22, 2014
@martindevans martindevans Added a (empty) project to build the Myre.Graphics.Content project mo…
…re easily

Updated particle system fx to respect depth (using HLSL Clip intrinsic)

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version number
Signed-off-by: Martin Evans <>
Commits on Apr 23, 2014
@martindevans martindevans Fixed material reader to properly set OpaqueData variables onto the e…
…ffect instance

Signed-off-by: Martin Evans <>
@martindevans martindevans bumped version for material fix in last commit
Signed-off-by: Martin Evans <>
@martindevans martindevans Added translucent support (into DefaultGBuffer.fx which isn't strictl…
…y the right place)

Modified Demo to restore depth before translucency stage, this makes particles properly respect depth

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped versions on changed assemblies
Signed-off-by: Martin Evans <>
@martindevans martindevans Configured pipeline to build in release mode
Signed-off-by: Martin Evans <>
Commits on Apr 29, 2014
@martindevans martindevans Modified GetBehaviours to return an empty array instead of null when …
…nothing is found

Signed-off-by: Martin Evans <>
Commits on Apr 30, 2014
@martindevans martindevans Fixed entity to return an empty array when no results are returned (r…
…ather than always null, even when results are returned ><)

Signed-off-by: Martin Evans <>
Commits on May 05, 2014
@martindevans martindevans Added a set of standard interpolators
Using Elastic interpolation for animation interpolation by default

Signed-off-by: Martin Evans <>
@martindevans martindevans Use linear interpolation instead, because elastic easing looks terrib…
…le for some animation setups

Signed-off-by: Martin Evans <>
Commits on May 19, 2014
@martindevans martindevans Added the option to specify the name of the phase for TranslucentComp…

Signed-off-by: Martin Evans <>
Commits on May 20, 2014
@martindevans martindevans Added a falloff based on the angle from the center of the spotlight
Signed-off-by: Martin Evans <>
Commits on May 21, 2014
@martindevans martindevans Added Begin and End methods to View (eventually so that views can sup…
…port per view render plans)

Signed-off-by: Martin Evans <>
@martindevans martindevans Added a new type of View "PlanView" which applies a plan when you beg…
…in, and reapplies the normal one when it's done. Implemented GBufferTest2.cs which does roughly the same as GBuffer (multiple screens showing different parts of the pipeline) but in a totally different way (an entirely new render pipeline per view).

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version number for release of Planned views
Signed-off-by: Martin Evans <>
Commits on May 22, 2014
@martindevans martindevans Modified plan view to use the default render plan if a null plan is c…

Signed-off-by: Martin Evans <>
@martindevans martindevans Exposed Renderer property of RenderPlan to be publicly readable
Signed-off-by: Martin Evans <>
@martindevans martindevans Added a way to clear the cache of a plan view
Signed-off-by: Martin Evans <>
Commits on Jun 03, 2014
@martindevans martindevans Fixed major bug in Directional lights (terrible light banding) caused…
… by too few shadowmap samples

Signed-off-by: Martin Evans <>
@martindevans martindevans Added a realistically coloured sun to the test scene
Signed-off-by: Martin Evans <>
Commits on Jun 24, 2014
@martindevans martindevans Added vector3 vector swizzling to vector2
Signed-off-by: Martin Evans <>
Commits on Jul 02, 2014
@martindevans martindevans Added == and != implementations for Int3 and Int4
Signed-off-by: Martin Evans <>
Commits on Jul 14, 2014
@martindevans martindevans Added extensions for plane structure (distance to plane and closest p…
…oint on plane)

Signed-off-by: Martin Evans <>
Commits on Jul 23, 2014
@martindevans martindevans Modified TypedName so that if null/whitespace is appended, nothing ha…

Signed-off-by: Martin Evans <>
@martindevans martindevans Major version bump (change to how TypedNames are concatenated is a br…
…eaking change)

Signed-off-by: Martin Evans <>
@martindevans martindevans Stripped out XBox360 Support
Signed-off-by: Martin Evans <>
Commits on Aug 08, 2014
@martindevans martindevans Fixed Area extension method for Vector2[] using the wrong winding
Signed-off-by: Martin Evans <>
Commits on Aug 28, 2014
@martindevans martindevans Added a Format extension method to strings
Signed-off-by: Martin Evans <>
Commits on Sep 22, 2014
@martindevans martindevans Made skinning data serializable
Signed-off-by: Martin Evans <>
@martindevans martindevans Exposed skinning data in Animated behaviour.
Signed-off-by: Martin Evans <>
@martindevans martindevans Respected naming conventions!
Signed-off-by: Martin Evans <>
Commits on Sep 25, 2014
@martindevans martindevans Added a non generic way to add values to BoxedValueStore
Signed-off-by: Martin Evans <>
@martindevans martindevans Added symbols to nuget packages
Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version of graphics
Signed-off-by: Martin Evans <>
Commits on Sep 26, 2014
@martindevans martindevans Fixed animated dude test
Signed-off-by: Martin Evans <>
@martindevans martindevans Modified animation keyframes to be structs rather than classes (reduc…
…ed allocations, at the cost of more copying - copying cost can be worked around by carefully using references and pointers within the animation system)

Signed-off-by: Martin Evans <>
@martindevans martindevans Separated animation system in Animated (takes bone transforms, update…
…s skeleton) and AniamtionQueue (handles clips and playback and crossfading etc)

Signed-off-by: Martin Evans <>
@martindevans martindevans Massively optimised calculating root bone delta (no longer saving *ev…
…ery transform* instead just saving the root transform, O(Num Bones) less copying)

Signed-off-by: Martin Evans <>
@martindevans martindevans Separated out converting bone->world transforms and world->skin trans…
…forms, this should allow the animation queue to make the decision between clips which supply bone transforms and clips which directly supply world transforms.

Signed-off-by: Martin Evans <>
Commits on Sep 27, 2014
@martindevans martindevans Completely removed bone transforms from "Animated", that's now entire…
…ly the concern of AnimationQueue (or any other animation player)

Signed-off-by: Martin Evans <>
@martindevans martindevans Minimised usage of Keyframe[][] Channels property on IClip, this can …
…be removed in favour of a method on IClip which gets frames of a given index in a given channel - this will allow "procedurally generated" animation clips, e.g. ragdolls.

Signed-off-by: Martin Evans <>
Commits on Sep 28, 2014
@martindevans martindevans Added ParallelProcessBehaviour which updates all behaviors involved i…
…n parallel with one another but not in parallel with anything else. This seems like a reasonable halfway to easily parallelising stuff without causing too many multithreading headaches.

Made Animated a ParallelProcessBehaviour

Signed-off-by: Martin Evans <>
Commits on Sep 29, 2014
@martindevans martindevans Added IChannel to encapsulate per channel methods in animation
Signed-off-by: Martin Evans <>
Commits on Sep 30, 2014
@martindevans martindevans Added some helper methods for animation
Signed-off-by: Martin Evans <>
@martindevans martindevans Modified bone index to be a ushort in IChannel (consistent with IClip)
Modified AnimationHelpers to allocate on stack instead of heap

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version number
Signed-off-by: Martin Evans <>
Commits on Oct 01, 2014
@martindevans martindevans Fixed looping/skipping problems in animation
Signed-off-by: Martin Evans <>
Commits on Oct 02, 2014
@martindevans martindevans Prevented looping of extremely short (<2 frames long) animations
Signed-off-by: Martin Evans <>
Commits on Oct 03, 2014
@martindevans martindevans Loosened up linear keyframe reduction constraints in pipeline
Made Animated load the bind pose immediately (in initialized)
Made BindPose in skinning data a Matrix[] instead of Transform[]

Signed-off-by: Martin Evans <>
@martindevans martindevans Reverted change to EmbeddedAnimationProcessor linear keyframe reducti…
…on constraints

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version
Signed-off-by: Martin Evans <>
@martindevans martindevans Modified content pipeline to correctly measure bone boundaries
Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped pipeline version
Signed-off-by: Martin Evans <>
Commits on Oct 08, 2014
@martindevans martindevans Removed WP7 Support
Added a ToTransform extension on matrix

Signed-off-by: Martin Evans <>
Commits on Oct 09, 2014
@martindevans martindevans Fixed AnimationQueue to correctly initialise startup values (no longe…
…r disregards enable/disable root bone transform components in initialisation)

Signed-off-by: Martin Evans <>
Commits on Oct 10, 2014
@martindevans martindevans Added lots of method comments
refactored some internal fields into properties to prevent a warning to do with appdomains marshalling by reference

Signed-off-by: Martin Evans <>
Commits on Dec 04, 2014
@martindevans martindevans Made it possible to initialize a NamedBoxCollection with a collection…
… initializer:

    var a = new NamedBoxCollection {
        { new TypedName<int>("a", 1) }

Signed-off-by: Martin Evans <>
@martindevans martindevans bumped version
Signed-off-by: Martin Evans <>
Commits on Jan 02, 2015
@martindevans martindevans Exposed a Writer property on CommandConsole
Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version
Signed-off-by: Martin Evans <>
@martindevans martindevans Aaaaaargh I bumped the version on the wrong thing!
Signed-off-by: Martin Evans <>
Commits on Jan 14, 2015
@martindevans martindevans Extension methods on quaternion
Signed-off-by: Martin Evans <>
Commits on Jan 16, 2015
@martindevans martindevans Made statistics more threadsafe internally (using concurrent dictionary)
Signed-off-by: Martin Evans <>
@martindevans martindevans Made statistics safe to modify values from multiple threads
made statistics no longer disposable

Signed-off-by: Martin Evans <>
Commits on Jan 23, 2015
@martindevans martindevans Made pool threadsafe
Removed some cruft from EventService (breaking change)
Changed implementation of Invocation to not recycle itself twice (very dangerous potentially)
Modified internals of pool (now using concurrent collections instead of a spinlock)
Covered EventService with tests

Signed-off-by: Martin Evans <>
Commits on Jan 27, 2015
@martindevans martindevans Removed ability to GetBehaviour without specifying a name, this metho…
…d encouraged bad code which did not respect naming.

Signed-off-by: Martin Evans <>
@martindevans martindevans Fixed testing (bringing it up to date with latest Myre changes)
Signed-off-by: Martin Evans <>
Commits on Feb 03, 2015
@martindevans martindevans Properly implemented Dispose on Screen.cs
Signed-off-by: Martin Evans <>
Commits on Feb 07, 2015
@martindevans martindevans Added fonts:
 - Content pipeline can take in a ttf file, and output a VertexFont object. StringModelData is a behaviour which takes a string and a vertex font and constructs a renderable string (in a ModelData object).
 - Content pipeline not quite done (see associated issue in this other project martindevans/Heist#145 (private))
 - Refactored how models are handled in content pipeline, factored a load of stuff out into a base class so that fonts can reuse the same code for their meshes.


 - Added a MeshTransform into Mesh.cs, this is multiplied into the world transform (world = mesh.Transform * world)

Bug fixes:
 - Properly implemented dispose pattern on Screen.cs, this is probably broken basically everywhere else that uses IDisposable in Myre (old code, from a previous age of rubbish coding)
 - Calling Entity.Initialised slightly later (after all behaviours are initialised *and* after they've all been added to managers).

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped versions appropriately for previous commit
Signed-off-by: Martin Evans <>
Commits on Feb 08, 2015
@martindevans martindevans Fixed parameters not being set in BaseModelProcessor when BaseVertexF…
…ontProcessor inherited off it (I had all the parameters in there twice!)

Signed-off-by: Martin Evans <>
Commits on Feb 09, 2015
@martindevans martindevans Added a dispose method to RendererComponent and RenderPlan and called…
… them as appropriate from Renderer

Signed-off-by: Martin Evans <>
@martindevans martindevans Enabled code analysis on all projects
Signed-off-by: Martin Evans <>
@martindevans martindevans Corrected winding on letters, 3D text rendering is *almost* complete …
…- now only lacks texture coordinates

Swapped out AntiAliasComponent implementation from a naieve edge blur to use FXAA

Signed-off-by: Martin Evans <>
Commits on Feb 10, 2015
@martindevans martindevans Generating texture coordinates for letters
Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version of Myre.Graphics too
Signed-off-by: Martin Evans <>
Commits on Feb 11, 2015
@martindevans martindevans Fixed initialisation of MeshTransform property to identity, rather th…
…an default(Matrix)

Signed-off-by: Martin Evans <>
Commits on Feb 26, 2015
@martindevans martindevans Added support for screen space decals
Signed-off-by: Martin Evans <>
@martindevans martindevans Moved in decal shaders from Myre.Testing to Myre (and included them a…
…s an embedded resource)

Signed-off-by: Martin Evans <>
@martindevans martindevans Modified decal shader to extract some helper functions to DepthHeader…

Signed-off-by: Martin Evans <>
Commits on Mar 02, 2015
@martindevans martindevans Added a limit of the maximum number of temporary decals (default 64)
Added a property to decals "temporary" which indicates if they may be removed at the engines' discretion

Signed-off-by: Martin Evans <>
@martindevans martindevans Fixed a bug in the decal disposal system (always disposing the same d…

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version for Myre.Entities (added an extension method earlier)
Signed-off-by: Martin Evans <>
Commits on Mar 04, 2015
@martindevans martindevans Updated decals to have a small fade range based on the difference bet…
…ween surface normal and decal direction

Signed-off-by: Martin Evans <>
@martindevans martindevans Turns out last change was backwards incompatible when I thought it wa…
…sn't! Reverted that back and bumped up the version again

Signed-off-by: Martin Evans <>
@martindevans martindevans Updated version
Signed-off-by: Martin Evans <>
@martindevans martindevans removed erroneous letter
Signed-off-by: Martin Evans <>
Commits on Mar 13, 2015
@martindevans martindevans modified text to be centered around origin, so it can be transformed …
…into place more easily

Signed-off-by: Martin Evans <>
Commits on Mar 16, 2015
@martindevans martindevans Added swizzling for vector2 and upswizzling into vector3
Signed-off-by: Martin Evans <>
Commits on Mar 23, 2015
@martindevans martindevans Added swizzling and swizzle+substitution operations for vector3
Signed-off-by: Martin Evans <>
Commits on Apr 02, 2015
@martindevans martindevans Removed Int4 (unused, not particularly useful)
Changed implementation of TryCopyValue to fallback through names (from most specific to least specific). This is taken from Epimetheus and moved into base Myre
Updated all uses of TryCopyValue

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version
Signed-off-by: Martin Evans <>
@martindevans martindevans Added in an import for PROFILE builds
Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped version of myre.Graphics
Signed-off-by: Martin Evans <>
@martindevans martindevans Added data provider TryCopyValue extensions which take a string names…
…pace (instead of Behaviour, which we then just fetch the name from).

Signed-off-by: Martin Evans <>
@martindevans martindevans Replaced "ignore view matrix/projection matrix" properties with custo…
…m view/projection matrix properties, which are nullable.

Signed-off-by: Martin Evans <>
Commits on Apr 03, 2015
@martindevans martindevans Added Sprite which uses SpriteBatch to render 2D textures as part of …
…a myre render pipeline

Signed-off-by: Martin Evans <>
@martindevans martindevans Add IsInvisible property to Sprite
Signed-off-by: Martin Evans <>
@martindevans martindevans Added a prepare method to sprites, called just before they are drawn
Signed-off-by: Martin Evans <>
@martindevans martindevans Passed view into prepare method
Signed-off-by: Martin Evans <>
@martindevans martindevans Modified properties to be stored keyed by Name:string+Type:Type tuple…
…, instead of just name. This allows two properties with the same name but different types.

Signed-off-by: Martin Evans <>
Commits on Apr 04, 2015
@martindevans martindevans Properly tested sprites and fixed lots of stupid bugs
Signed-off-by: Martin Evans <>
@martindevans martindevans Modified BoxedValueStore to store with Key+Type, not just key
removed all uses of MarshalByReferenceObject (thank God that is gone)

Signed-off-by: Martin Evans <>
@martindevans martindevans Bumped versions
Signed-off-by: Martin Evans <>
Commits on Apr 06, 2015
@martindevans martindevans Modified Sprite.Prepare to return a bool. Returning false will skip r…
…ending of this sprite

Signed-off-by: Martin Evans <>
Commits on Apr 08, 2015
@martindevans martindevans Added SpriteText2D.cs
Signed-off-by: Martin Evans <>
Commits on Apr 11, 2015
@martindevans martindevans Modified ProcessBehaviour to explicitly *never* update if Period is u…

Signed-off-by: Martin Evans <>
Commits on Apr 30, 2015
@martindevans martindevans Added color tint to decals
Signed-off-by: Martin Evans <>