<commit_before># CocosSharp v1.5.0.0 release notes

## Key new features
 ---

### Signed and simplified assemblies

* TBA


### Renderer pipeline

We have overhauled the way CocosSharp performs rendering, with a focus on improved performance. Please check out this article [here](link_to_forum_post) for an in-depth discussion on the design of our renderer pipeline and what it means for developers.


## Breaking changes
 ---

* Due to the inclusion of the new renderer pipeline, __<code>CCSpriteBatchNode</code> has been marked obsolete__, however to avoid confusion will me omitted entirely in future releases. Please see the article [here](link_to_forum_post) for details on how to migrate away from this class.


* __<code>CCRenderTexture</code> is longer derived from <code>CCNode</code>__. Previously, <code>CCRenderTexture</code> served a dual role where it could both be attached to the scene-graph or used externally, with the corresponding <code>Sprite</code> instead added to a scene. For example

<pre>
<code>
CCRender renderTexture;
CCSprite renderTexSprite;

// Initialise render texture

renderTexture.Begin();
// Draw into texture
renderTexture.End();

// Previously, could add texture to a parent node
parentNode.AddChild(renderTexture);


// Alternatively, get corresponding sprite and add that
// This is the approach to use from v.1.5.0.0 onwards
renderTexSprite = renderTexture.Sprite;
parentNode.AddChild(renderTexSprite);
</code>
</pre>

So in CocosSharp v1.5.0.0 onwards we have simply removed the ability to add a render texture to a parent node, which is consistent with the role it serves.

* __Attach <code>CCGeometryBatch</code> to scene and rename to <code>CCGeometryNode</code>__. To integrate with our new renderer pipeline, <code>CCGeometryBatch</code> is now derived from <code>CCNode</code> and needs to be attached to a parent node to be renderable. To emphasise this change in behavior, we renamed <code>CCGeometryBatch</code> to <code>CCGeometryNode</code>. Migrating to use <code>CCGeometryNode</code> should be relatively straight-forward. For example

<pre>
<code>
	
// Create node and add to parent
CCGeometryNode geoNode = new CCGeometryNode();
parentNode.AddChild(geoNode);

// Thereafter, setting up drawing geometry should be exactly the same as with CCGeometryBatch

// e.g. Create geom instance with 3 vertices and 3 indices
CCGeometryInstance geomInstance = geoBatch.CreateGeometryInstance(3, 3);

// Populate instance as with CCGeometryBatch


// No need to explicitly flush render commands
// By being added to the scene-graph, rendering is performed implicitly!

</code>
</pre>


* __<code>CCDrawPrimitives</code>__ has now been marked obsolete. Users should instead make use of the pre-existing <code>CCDrawNode</code> class which integrates with the new renderer pipeline, or alternatively use <code>CCGeometryNode</code> to construct more customisable primitives.

* __v.1.4.0.0 reminder__: Usage of the obsolete <code>CCLabelBMFont</code> and <code>CCLabelTtf</code> classes should be replaced with unified label class <code>CCLabel</code> (see [here](http://forums.xamarin.com/discussion/37873/cocossharp-v1-4-0-0-release)). These obsolete classes will be removed in future releases!




## Fixes and enhancements <commit_msg>Add release notes for XS and VS Templates. Add breaking changes section for the PCL package.<commit_after># CocosSharp v1.5.0.0 release notes

## Key new features
 ---

### Renderer pipeline

We have overhauled the way CocosSharp performs rendering, with a focus on improved performance. Please check out this article [here](link_to_forum_post) for an in-depth discussion on the design of our renderer pipeline and what it means for developers.

### Templates

Xamarin Studio and Visual Studio templates have been updated with the latest PCL package for this release.

Visual Studio templates now have three new templates.
* Windows Phone 8.1
* Mobile
 - Portable - Android, iOS and Windows Phone 8.1
   - This template will create a portable PCL project solution.  
 - Shared - Android, iOS and Windows Phone 8,1
   - This template will create a shared project solution 

## Breaking changes
 ---

* Due to the inclusion of the new renderer pipeline, __<code>CCSpriteBatchNode</code> has been marked obsolete__, however to avoid confusion will me omitted entirely in future releases. Please see the article [here](link_to_forum_post) for details on how to migrate away from this class.


* __<code>CCRenderTexture</code> is longer derived from <code>CCNode</code>__. Previously, <code>CCRenderTexture</code> served a dual role where it could both be attached to the scene-graph or used externally, with the corresponding <code>Sprite</code> instead added to a scene. For example

<pre>
<code>
CCRender renderTexture;
CCSprite renderTexSprite;

// Initialise render texture

renderTexture.Begin();
// Draw into texture
renderTexture.End();

// Previously, could add texture to a parent node
parentNode.AddChild(renderTexture);


// Alternatively, get corresponding sprite and add that
// This is the approach to use from v.1.5.0.0 onwards
renderTexSprite = renderTexture.Sprite;
parentNode.AddChild(renderTexSprite);
</code>
</pre>

So in CocosSharp v1.5.0.0 onwards we have simply removed the ability to add a render texture to a parent node, which is consistent with the role it serves.

* __Attach <code>CCGeometryBatch</code> to scene and rename to <code>CCGeometryNode</code>__. To integrate with our new renderer pipeline, <code>CCGeometryBatch</code> is now derived from <code>CCNode</code> and needs to be attached to a parent node to be renderable. To emphasise this change in behavior, we renamed <code>CCGeometryBatch</code> to <code>CCGeometryNode</code>. Migrating to use <code>CCGeometryNode</code> should be relatively straight-forward. For example

<pre>
<code>
	
// Create node and add to parent
CCGeometryNode geoNode = new CCGeometryNode();
parentNode.AddChild(geoNode);

// Thereafter, setting up drawing geometry should be exactly the same as with CCGeometryBatch

// e.g. Create geom instance with 3 vertices and 3 indices
CCGeometryInstance geomInstance = geoBatch.CreateGeometryInstance(3, 3);

// Populate instance as with CCGeometryBatch


// No need to explicitly flush render commands
// By being added to the scene-graph, rendering is performed implicitly!

</code>
</pre>


* __<code>CCDrawPrimitives</code>__ has now been marked obsolete. Users should instead make use of the pre-existing <code>CCDrawNode</code> class which integrates with the new renderer pipeline, or alternatively use <code>CCGeometryNode</code> to construct more customisable primitives.

* __NuGet packages__: To cut down on the confusion of which NuGet package to include in your projects we will only be delivering one NuGet package that includes only the PCL assemblies for the following platforms.  Developers will need to update their projects to use this new package to obtain the updates.  __CococsSharp.PCL.Shared.nupkg__
  *  Android
  *  iOS
  *  Windows DX
  *  Windows 8
  *  Windows Phone 8.1
  *  Windows Phone 8.0 - __Note:__ Windows Phone 8.0 will be obsolete in the the next release.

* __v.1.4.0.0 reminder__: Usage of the obsolete <code>CCLabelBMFont</code> and <code>CCLabelTtf</code> classes should be replaced with unified label class <code>CCLabel</code> (see [here](http://forums.xamarin.com/discussion/37873/cocossharp-v1-4-0-0-release)). These obsolete classes will be removed in future releases!

## Fixes and enhancements 
{'fraction_non_alphanumeric': 0.07720880870257363, 'fraction_numerical': 0.00941894401698063, 'mean_word_length': 4.7287234042553195, 'pattern_counts': {'":': 0, '<': 91, '<?xml version=': 0, '>': 91, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 8, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2475722', 'n_tokens_mistral': 2117, 'n_tokens_neox': 2013, 'n_words': 913}