Parcourir la source

First commit

Move content importers from https://github.com/tainicom/ProtonType
Nikos Kastellanos il y a 8 ans
Parent
commit
e038b7c1e0
30 fichiers modifiés avec 969 ajouts et 1 suppressions
  1. 27 0
      Aether.Extras.PORTABLE.sln
  2. 34 0
      Aether.Extras.WINDOWS.MG.sln
  3. 109 0
      Content.Pipeline/DDSImporter/DDSHeader.cs
  4. 71 0
      Content.Pipeline/DDSImporter/DDSImporter.PORTABLE.csproj
  5. 67 0
      Content.Pipeline/DDSImporter/DDSImporter.WINDOWS.MG.csproj
  6. 131 0
      Content.Pipeline/DDSImporter/DDSImporter.cs
  7. 66 0
      Content.Pipeline/DDSImporter/DDSPixelFormat.cs
  8. 108 0
      Content.Pipeline/DDSImporter/DDSProcessor.cs
  9. 81 0
      Content.Pipeline/DDSImporter/DXT1Block.cs
  10. 36 0
      Content.Pipeline/DDSImporter/Properties/AssemblyInfo.cs
  11. 5 0
      Content.Pipeline/DDSImporter/packages.config
  12. 30 0
      Content.Pipeline/RawModelProcessor/Properties/AssemblyInfo.cs
  13. 63 0
      Content.Pipeline/RawModelProcessor/RawModelProcessor.PORTABLE.csproj
  14. 61 0
      Content.Pipeline/RawModelProcessor/RawModelProcessor.WINDOWS.MG.csproj
  15. 63 0
      Content.Pipeline/RawModelProcessor/RawModelProcessor.cs
  16. 5 0
      Content.Pipeline/RawModelProcessor/packages.config
  17. 1 1
      LICENSE
  18. 6 0
      README.md
  19. BIN
      bin/Release/Portable/Aether.Content.Pipeline.RawModelProcessor.dll
  20. BIN
      bin/Release/Windows/Aether.Content.Pipeline.DDSImporter.dll
  21. BIN
      bin/Release/Windows/Aether.Content.Pipeline.RawModelProcessor.dll
  22. BIN
      packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta.nupkg
  23. BIN
      packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta/lib/portable-net40+sl40+win+wp80/MonoGame.Framework.Content.Pipeline.dll
  24. BIN
      packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta/lib/portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10/MonoGame.Framework.Content.Pipeline.dll
  25. BIN
      packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta/lib/portable-net45+win+wpa81+Xamarin.iOS10+MonoAndroid10+MonoTouch10/MonoGame.Framework.Content.Pipeline.dll
  26. BIN
      packages/MonoGame.Framework.Portable.3.2.99.1-Beta/MonoGame.Framework.Portable.3.2.99.1-Beta.nupkg
  27. BIN
      packages/MonoGame.Framework.Portable.3.2.99.1-Beta/lib/portable-net40+sl40+win+wp80/MonoGame.Framework.dll
  28. BIN
      packages/MonoGame.Framework.Portable.3.2.99.1-Beta/lib/portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10/MonoGame.Framework.dll
  29. BIN
      packages/MonoGame.Framework.Portable.3.2.99.1-Beta/lib/portable-net45+win+wpa81+Xamarin.iOS10+MonoAndroid10+MonoTouch10/MonoGame.Framework.dll
  30. 5 0
      packages/repositories.config

+ 27 - 0
Aether.Extras.PORTABLE.sln

@@ -0,0 +1,27 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.40629.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Aether.Content.Pipeline", "Aether.Content.Pipeline", "{717F89BC-8423-4E7C-A834-460CFD62B1E3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RawModelProcessor.PORTABLE", "Content.Pipeline\RawModelProcessor\RawModelProcessor.PORTABLE.csproj", "{C3218A39-5491-44BF-B820-754832E318DB}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{C3218A39-5491-44BF-B820-754832E318DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C3218A39-5491-44BF-B820-754832E318DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C3218A39-5491-44BF-B820-754832E318DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C3218A39-5491-44BF-B820-754832E318DB}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{C3218A39-5491-44BF-B820-754832E318DB} = {717F89BC-8423-4E7C-A834-460CFD62B1E3}
+	EndGlobalSection
+EndGlobal

+ 34 - 0
Aether.Extras.WINDOWS.MG.sln

@@ -0,0 +1,34 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.40629.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Aether.Content.Pipeline", "Aether.Content.Pipeline", "{A921886B-C6F7-4FF8-8668-EC20004C464A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DDSImporter.WINDOWS.MG", "Content.Pipeline\DDSImporter\DDSImporter.WINDOWS.MG.csproj", "{26C387C6-7313-47D4-A05F-14639AB02D70}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RawModelProcessor.WINDOWS.MG", "Content.Pipeline\RawModelProcessor\RawModelProcessor.WINDOWS.MG.csproj", "{48E4029A-115C-4DC2-AF3A-0AB94F36BFC0}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{26C387C6-7313-47D4-A05F-14639AB02D70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{26C387C6-7313-47D4-A05F-14639AB02D70}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{26C387C6-7313-47D4-A05F-14639AB02D70}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{26C387C6-7313-47D4-A05F-14639AB02D70}.Release|Any CPU.Build.0 = Release|Any CPU
+		{48E4029A-115C-4DC2-AF3A-0AB94F36BFC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{48E4029A-115C-4DC2-AF3A-0AB94F36BFC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{48E4029A-115C-4DC2-AF3A-0AB94F36BFC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{48E4029A-115C-4DC2-AF3A-0AB94F36BFC0}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{26C387C6-7313-47D4-A05F-14639AB02D70} = {A921886B-C6F7-4FF8-8668-EC20004C464A}
+		{48E4029A-115C-4DC2-AF3A-0AB94F36BFC0} = {A921886B-C6F7-4FF8-8668-EC20004C464A}
+	EndGlobalSection
+EndGlobal

+ 109 - 0
Content.Pipeline/DDSImporter/DDSHeader.cs

@@ -0,0 +1,109 @@
+#region License
+//   Copyright 2015-2016 Kastellanos Nikolaos
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+#endregion
+
+using System;
+
+namespace tainicom.Aether.Content.Pipeline
+{
+    internal struct DDSHeader
+    {   
+        static readonly int DDSignature = (BitConverter.IsLittleEndian) ? 0x20534444:0x44445320;
+
+        public Int32 Signature;
+        public Int32 Size;
+        public DDS_Flags Flags;
+        public Int32 Height;
+        public Int32 Width;
+        public Int32 PitchOrLinearSize;
+        public Int32 Depth;
+        public Int32 MipMapCount;
+        public Int32 Reserved0, Reserved1, Reserved2, Reserved3;
+        public Int32 Reserved4, Reserved5, Reserved6, Reserved7;
+        public Int32 Reserved8, Reserved9, ReservedA;
+        public DDSPixelFormat PixelFormat;
+        public DDS_Caps Caps;
+        public DDS_Caps2 Caps2;
+        public Int32 Caps3;
+        public Int32 Caps4;
+        public Int32 ReservedB;
+
+        public DDSHeader(System.IO.BinaryReader reader)
+        {
+            Signature = reader.ReadInt32();
+            if (Signature != DDSHeader.DDSignature)
+                throw new Exception("This does not appear to be a DDS file");
+            Size = reader.ReadInt32();
+            Flags = (DDS_Flags)reader.ReadInt32();
+            Height = reader.ReadInt32();
+            Width = reader.ReadInt32();
+            PitchOrLinearSize = reader.ReadInt32();
+            Depth = reader.ReadInt32();
+            MipMapCount = reader.ReadInt32();
+            Reserved0 = reader.ReadInt32();
+            Reserved1 = reader.ReadInt32();
+            Reserved2 = reader.ReadInt32();
+            Reserved3 = reader.ReadInt32();
+            Reserved4 = reader.ReadInt32();
+            Reserved5 = reader.ReadInt32();
+            Reserved6 = reader.ReadInt32();
+            Reserved7 = reader.ReadInt32();
+            Reserved8 = reader.ReadInt32();
+            Reserved9 = reader.ReadInt32();
+            ReservedA = reader.ReadInt32();
+            PixelFormat = new DDSPixelFormat(reader);
+            Caps = (DDS_Caps)reader.ReadInt32();
+            Caps2 = (DDS_Caps2)reader.ReadInt32();
+            Caps3 = reader.ReadInt32();
+            Caps4 = reader.ReadInt32();
+            ReservedB = reader.ReadInt32();
+        }
+    }
+
+    [Flags]
+    internal enum DDS_Flags: int
+    {
+        CAPS       = 0x000001,
+        HEIGHT     = 0x000002,
+        WIDTH      = 0x000004,
+        PITCH      = 0x000008,
+        PIXELFORMAT= 0x001000,
+        MIPMAPCOUNT= 0x020000,
+        LINEARSIZE = 0x080000,
+        DEPTH      = 0x800000,
+    }
+
+    [Flags]
+    internal enum DDS_Caps : int
+    {
+        COMPLEX = 0x000008,
+        MIPMAP  = 0x400000,
+        TEXTURE = 0x001000,
+    }
+
+    [Flags]
+    internal enum DDS_Caps2 : int
+    {
+        CUBEMAP            = 0x000200,
+        CUBEMAP_POSITIVEX  = 0x000400,
+        CUBEMAP_NEGATIVEX  = 0x000800,
+        CUBEMAP_POSITIVEY  = 0x001000,
+        CUBEMAP_NEGATIVEY  = 0x002000,
+        CUBEMAP_POSITIVEZ  = 0x004000,
+        CUBEMAP_NEGATIVEZ  = 0x008000,
+        VOLUME             = 0x200000,
+    }
+    
+}

+ 71 - 0
Content.Pipeline/DDSImporter/DDSImporter.PORTABLE.csproj

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{84F55AF5-6C7F-416F-A497-ECDC70682625}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>tainicom.Aether.Content.Pipeline</RootNamespace>
+    <AssemblyName>Aether.Content.Pipeline.DDSImporter</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\bin\Debug\Portable\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\bin\Release\Portable\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="MonoGame.Framework, Version=3.1.2.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MonoGame.Framework.Portable.3.2.99.1-Beta\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\MonoGame.Framework.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="MonoGame.Framework.Content.Pipeline, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\MonoGame.Framework.Content.Pipeline.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <Private>False</Private>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DDSHeader.cs" />
+    <Compile Include="DDSImporter.cs" />
+    <Compile Include="DDSPixelFormat.cs" />
+    <Compile Include="DDSProcessor.cs" />
+    <Compile Include="DXT1Block.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 67 - 0
Content.Pipeline/DDSImporter/DDSImporter.WINDOWS.MG.csproj

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{26C387C6-7313-47D4-A05F-14639AB02D70}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>tainicom.Aether.Content.Pipeline</RootNamespace>
+    <AssemblyName>Aether.Content.Pipeline.DDSImporter</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\bin\Debug\Windows\</OutputPath>
+    <DefineConstants>TRACE;DEBUG;WINDOWS MG</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\bin\Release\Windows\</OutputPath>
+    <DefineConstants>TRACE;WINDOWS MG</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="MonoGame.Framework, Version=3.1.2.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MonoGame.Framework.Portable.3.2.99.1-Beta\lib\portable-net40+sl40+win+wp80\MonoGame.Framework.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="MonoGame.Framework.Content.Pipeline, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta\lib\portable-net40+sl40+win+wp80\MonoGame.Framework.Content.Pipeline.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <Private>False</Private>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DDSHeader.cs" />
+    <Compile Include="DDSImporter.cs" />
+    <Compile Include="DDSPixelFormat.cs" />
+    <Compile Include="DDSProcessor.cs" />
+    <Compile Include="DXT1Block.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 131 - 0
Content.Pipeline/DDSImporter/DDSImporter.cs

@@ -0,0 +1,131 @@
+#region License
+//   Copyright 2015-2016 Kastellanos Nikolaos
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+#endregion
+
+using System;
+using System.IO;
+using Microsoft.Xna.Framework.Content.Pipeline;
+using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace tainicom.Aether.Content.Pipeline
+{
+    [ContentImporter(".dds", DisplayName = "DDS Importer - Aether", DefaultProcessor = "DDSProcessor")]
+    public class DDSImporter : ContentImporter<TextureContent>
+    {
+        public override TextureContent Import(string filename, ContentImporterContext context)
+        {
+            TextureContent output;
+
+            using(var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
+            {
+                using(var reader = new BinaryReader(stream))
+                {
+                    var header = new DDSHeader(reader);
+                    if (header.PixelFormat.Flags == PF_Flags.FOURCC && header.PixelFormat.FourCC == PF_FourCC.DX10)
+                    {
+                        throw new NotImplementedException("DX10 Header not supported");
+                    }
+                    if (header.PitchOrLinearSize != 0)
+                        throw new NotImplementedException();
+                    
+
+                    if (header.Caps2.HasFlag(DDS_Caps2.CUBEMAP))
+                    {
+                        var cube = new TextureCubeContent();
+                        var format = GetFormat(header.PixelFormat);
+                        for (int f = 0; f < 6; f++)
+                        {
+                            var width = header.Width;
+                            var height = header.Height;
+                            BitmapContent bitmap = CreateBitmap(format, width, height);
+                            var size = GetBitmapSize(format, width, height);
+                            byte[] src = reader.ReadBytes(size);
+                            bitmap.SetPixelData(src);
+                            cube.Faces[f].Add(bitmap);
+
+                            if (header.Caps.HasFlag(DDS_Caps.MIPMAP))
+                            {
+                                for(int m=0; m<header.MipMapCount-1; m++)
+                                {
+                                    width = width/2;
+                                    height = height/2;
+
+                                    bitmap = CreateBitmap(format, width, height);
+                                    size = GetBitmapSize(format, width, height);
+                                    src = reader.ReadBytes(size);
+                                    bitmap.SetPixelData(src);
+                                    cube.Faces[f].Add(bitmap);
+                                }
+                            }                            
+                        }
+                        output = cube;
+                    }
+                    else
+                    {
+                        throw new NotImplementedException(header.Caps2 + " not supported");
+                    }
+
+                    reader.Close();
+                    stream.Close();
+                }
+            }            
+
+            return output;
+        }
+
+        internal static int GetBitmapSize(SurfaceFormat format, int width, int height)
+        {
+            int pixels = width * height;
+
+            switch (format)
+            {
+                case SurfaceFormat.Dxt1:
+                    return Math.Max(8, (pixels / 2));
+                default:
+                    throw new NotImplementedException();
+            }
+        }
+        
+        private SurfaceFormat GetFormat(DDSPixelFormat pixelFormat)
+        {
+            switch (pixelFormat.Flags)
+            {
+                case PF_Flags.FOURCC:
+                    switch (pixelFormat.FourCC)
+                    {
+                        case PF_FourCC.DXT1:
+                            return SurfaceFormat.Dxt1;
+                        default:
+                            throw new NotImplementedException();
+                    }
+                default:
+                    throw new NotImplementedException();
+            }
+        }
+
+        private BitmapContent CreateBitmap(SurfaceFormat targetFormat, int width, int height)
+        {
+            switch (targetFormat)
+            {
+                case SurfaceFormat.Dxt1:
+                    return new Dxt1BitmapContent(width, height);
+                default:
+                    throw new NotImplementedException();
+            }
+        }
+    }
+
+}

+ 66 - 0
Content.Pipeline/DDSImporter/DDSPixelFormat.cs

@@ -0,0 +1,66 @@
+#region License
+//   Copyright 2015-2016 Kastellanos Nikolaos
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+#endregion
+
+using System;
+
+namespace tainicom.Aether.Content.Pipeline
+{
+    internal struct DDSPixelFormat
+    {
+        public Int32 Size;
+        public PF_Flags Flags;
+        public PF_FourCC FourCC;
+        public Int32 RGBBitCount;
+        public Int32 RBitMask;
+        public Int32 GBitMask;
+        public Int32 BBitMask;
+        public Int32 ABitMask;
+
+        public DDSPixelFormat(System.IO.BinaryReader reader)
+        {
+            Size = reader.ReadInt32();
+            Flags = (PF_Flags)reader.ReadInt32();
+            FourCC = (PF_FourCC)reader.ReadInt32();
+            RGBBitCount = reader.ReadInt32();
+            RBitMask = reader.ReadInt32();
+            GBitMask = reader.ReadInt32();
+            BBitMask = reader.ReadInt32();
+            ABitMask = reader.ReadInt32();
+        }
+
+    }
+
+    internal enum PF_Flags : int
+    {
+        ALPHAPIXELS = 0x00001,
+        ALPHA = 0x00002,
+        FOURCC = 0x00004,
+        RGB = 0x00040,
+        YUV = 0x00200,
+        LUMINANCE = 0x20000,
+    }
+
+    internal enum PF_FourCC : int
+    {
+        DXT1 = 0x31545844,
+        DXT2 = 0x32545844,
+        DXT3 = 0x33545844,
+        DXT4 = 0x34545844,
+        DXT5 = 0x35545844,
+        DX10 = 0x30315844,
+    }
+
+}

+ 108 - 0
Content.Pipeline/DDSImporter/DDSProcessor.cs

@@ -0,0 +1,108 @@
+#region License
+//   Copyright 2015-2016 Kastellanos Nikolaos
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+#endregion
+
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Content.Pipeline;
+using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
+using Microsoft.Xna.Framework.Content.Pipeline.Processors;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace tainicom.Aether.Content.Pipeline
+{
+    [ContentProcessor(DisplayName = "DDSProcessor - Aether")]
+    public class DDSProcessor : ContentProcessor<TextureContent, TextureContent>
+    {
+        public virtual bool GenerateMipmaps { get; set; }
+        public virtual TextureProcessorOutputFormat TextureFormat { get; set; }
+        
+        public DDSProcessor()
+        {
+            GenerateMipmaps = true;
+            TextureFormat = TextureProcessorOutputFormat.NoChange;
+        }
+
+        public override TextureContent Process(TextureContent input, ContentProcessorContext context)
+        {
+            TextureContent output = input;
+
+            switch (TextureFormat)
+            {
+                case TextureProcessorOutputFormat.Color:
+                    SurfaceFormat format;
+                    output.Faces[0][0].TryGetFormat(out format);
+                    if (format != SurfaceFormat.Color)
+                        ConvertToColor(output);
+                    break;
+
+            }
+
+            //output.ConvertBitmapType();
+
+            if (GenerateMipmaps)
+                output.GenerateMipmaps(false);
+
+            return output;
+        }
+
+        private void ConvertToColor(TextureContent textureContent)
+        {
+            foreach (var face in textureContent.Faces)
+            {
+                for (int m = 0; m < face.Count; m++)
+                {
+                    BitmapContent input = face[m];
+                    BitmapContent output = ConvertToColor(input);
+                    face[m] = output;
+                }
+            }
+            return;
+        }
+
+        unsafe private static BitmapContent ConvertToColor(BitmapContent input)
+        {
+            var width = input.Width;
+            var height = input.Height;
+
+            SurfaceFormat format;
+            input.TryGetFormat(out format);
+            var formatSize = DDSImporter.GetBitmapSize(format, width, height);
+            var blocks = formatSize;
+            var inData = input.GetPixelData();
+
+            var output = new PixelBitmapContent<Color>(width, height);
+
+            fixed (byte* p = &inData[0])
+            {
+                DXT1Block* block = (DXT1Block*)p;
+
+                //convert DXT1 to color
+                for (int y = 0; y < height; ++y)
+                {
+                    for (int x = 0; x < width; ++x)
+                    {
+                        int blockIdx = (x / 4) + (y / 4) * (width / 4);
+                        int colorIndex = x % 4 + (y % 4) * 4;
+
+                        Color color = block[blockIdx].GetColor(colorIndex);
+                        output.SetPixel(x, y, color);
+                    }
+                }
+            }
+
+            return output;
+        }
+    }
+}

+ 81 - 0
Content.Pipeline/DDSImporter/DXT1Block.cs

@@ -0,0 +1,81 @@
+#region License
+//   Copyright 2015-2016 Kastellanos Nikolaos
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+#endregion
+
+using System;
+using System.Runtime.InteropServices;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics.PackedVector;
+
+namespace tainicom.Aether.Content.Pipeline
+{
+     
+    [StructLayout(LayoutKind.Sequential, Pack = 1)]
+    internal struct DXT1Block
+    {
+        Bgr565 color0;
+        Bgr565 color1;
+        byte idx0123;
+        byte idx4567;
+        byte idx89AB;
+        byte idxCDEF;
+        
+        internal Color GetColor(int colorIndex)
+        {
+            var H = colorIndex / 4;
+            var L = colorIndex % 4;
+            int idx = 0;
+
+            switch (H)
+            {
+                case 0:
+                    idx = idx0123;
+                    break;
+                case 1:
+                    idx = idx4567;
+                    break;
+                case 2:
+                    idx = idx89AB;
+                    break;
+                case 3:
+                    idx = idxCDEF;
+                    break;
+            }
+
+            idx = (idx >> (L * 2));
+            idx = idx & 0x03;
+
+            switch (idx)
+            {
+                case 0: return new Color(color0.ToVector3());
+                case 1: return new Color(color1.ToVector3());
+                    
+                //case 2: return new Color((2 * color0.ToVector3() + color1.ToVector3()) / 3);
+                //case 3: return new Color((color0.ToVector3() + 2 * color1.ToVector3()) / 3);
+
+                case 2: return (color0.PackedValue > color1.PackedValue) ? 
+                        new Color((2 * color0.ToVector3() + color1.ToVector3()) / 3) : 
+                        new Color((color0.ToVector3() + color1.ToVector3()) / 2f);
+                case 3: return (color0.PackedValue > color1.PackedValue) ? 
+                        new Color((2 * color1.ToVector3() + color0.ToVector3()) / 3) : 
+                        Color.TransparentBlack;
+
+                default: throw new NotSupportedException();
+            }
+
+
+        }
+    }
+}

+ 36 - 0
Content.Pipeline/DDSImporter/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Aether.Content.Pipeline.DDSImporter")]
+[assembly: AssemblyProduct("DDSImporter")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyCopyright("Copyright © Kastellanos Nikolaos  2015-2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("449f5ddc-abab-4431-8cc8-819fc2b6e870")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 5 - 0
Content.Pipeline/DDSImporter/packages.config

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="MonoGame.Framework.Content.Pipeline.Portable" version="3.2.99.1-Beta" targetFramework="net40" />
+  <package id="MonoGame.Framework.Portable" version="3.2.99.1-Beta" targetFramework="net40" />
+</packages>

+ 30 - 0
Content.Pipeline/RawModelProcessor/Properties/AssemblyInfo.cs

@@ -0,0 +1,30 @@
+using System.Resources;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Aether.Content.Pipeline.RawModelProcessor")]
+[assembly: AssemblyProduct("RawModelProcessor")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyCopyright("Copyright ©  Kastellanos Nikolaos  2015-2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: NeutralResourcesLanguage("en")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 63 - 0
Content.Pipeline/RawModelProcessor/RawModelProcessor.PORTABLE.csproj

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{C3218A39-5491-44BF-B820-754832E318DB}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>tainicom.Aether.Content.Pipeline</RootNamespace>
+    <AssemblyName>Aether.Content.Pipeline.RawModelProcessor</AssemblyName>
+    <DefaultLanguage>en-US</DefaultLanguage>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <TargetFrameworkProfile>Profile259</TargetFrameworkProfile>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\bin\Debug\Portable\</OutputPath>
+    <DefineConstants>TRACE;DEBUG;PORTABLE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\bin\Release\Portable\</OutputPath>
+    <DefineConstants>TRACE;PORTABLE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="MonoGame.Framework, Version=3.1.2.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MonoGame.Framework.Portable.3.2.99.1-Beta\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\MonoGame.Framework.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="MonoGame.Framework.Content.Pipeline, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\MonoGame.Framework.Content.Pipeline.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <Private>False</Private>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="RawModelProcessor.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 61 - 0
Content.Pipeline/RawModelProcessor/RawModelProcessor.WINDOWS.MG.csproj

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{48E4029A-115C-4DC2-AF3A-0AB94F36BFC0}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>tainicom.Aether.Content.Pipeline</RootNamespace>
+    <AssemblyName>Aether.Content.Pipeline.RawModelProcessor</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\bin\Debug\Windows\</OutputPath>
+    <DefineConstants>TRACE;DEBUG;WINDOWS MG</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>none</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\bin\Release\Windows\</OutputPath>
+    <DefineConstants>TRACE;WINDOWS MG</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="MonoGame.Framework, Version=3.1.2.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MonoGame.Framework.Portable.3.2.99.1-Beta\lib\portable-net40+sl40+win+wp80\MonoGame.Framework.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="MonoGame.Framework.Content.Pipeline, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta\lib\portable-net40+sl40+win+wp80\MonoGame.Framework.Content.Pipeline.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <Private>False</Private>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="RawModelProcessor.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 63 - 0
Content.Pipeline/RawModelProcessor/RawModelProcessor.cs

@@ -0,0 +1,63 @@
+#region License
+//   Copyright 2015-2016 Kastellanos Nikolaos
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+#endregion
+
+using Microsoft.Xna.Framework.Content.Pipeline;
+using Microsoft.Xna.Framework.Content.Pipeline.Graphics;
+using Microsoft.Xna.Framework.Content.Pipeline.Processors;
+
+namespace tainicom.Aether.Content.Pipeline
+{
+    [ContentProcessor(DisplayName = "RawModelProcessor - Aether")]
+    class RawModelProcessor : ModelProcessor
+    {
+        public override ModelContent Process(NodeContent input, ContentProcessorContext context)
+        {
+            ModelContent model = base.Process(input, context);
+
+            foreach(var mesh in model.Meshes)
+                foreach(var part in mesh.MeshParts)
+                    Proccess(part);
+
+            return model;
+        }
+
+        private void Proccess(ModelMeshPartContent part)
+        {
+            var vertexData = part.VertexBuffer.VertexData;
+
+            object indexData;
+            int indexSize = part.IndexBuffer.Count;
+            if (part.VertexBuffer.VertexData.Length < short.MaxValue)
+            {
+                short[] indexData16 = new short[indexSize];
+                for (int i = 0; i < indexSize; i++)
+                    indexData16[i] = (short)part.IndexBuffer[i];
+                indexData = indexData16;
+            }
+            else
+            {   
+                int[] indexData32 = new int[indexSize];
+                part.IndexBuffer.CopyTo(indexData32, 0);
+                indexData = indexData32;
+            }
+
+            object[] tag;
+            tag = new object[] { vertexData, indexData };
+
+            part.Tag = tag;
+        }
+    }
+}

+ 5 - 0
Content.Pipeline/RawModelProcessor/packages.config

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="MonoGame.Framework.Content.Pipeline.Portable" version="3.2.99.1-Beta" targetFramework="portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+  <package id="MonoGame.Framework.Portable" version="3.2.99.1-Beta" targetFramework="portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
+</packages>

+ 1 - 1
LICENSE

@@ -186,7 +186,7 @@
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-   Copyright {yyyy} {name of copyright owner}
+   Copyright 2015-2016 Kastellanos Nikolaos
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.

+ 6 - 0
README.md

@@ -1,2 +1,8 @@
 # Aether.Extras
 MonoGame Content Importers, Shaders, etc
+
+
+## Content Importers
+
+* 'DDS Importer' - Import of DDS files (images, Cubemaps). Supports conversion from DTX to Color (ex. import DTX cubemaps for Android that doesn't support DXT compressed cubemaps).
+* 'RawModelProcessor' - Import 3D Models with a raw copy of Vertex/Index data for platforms that don't support GetData().

BIN
bin/Release/Portable/Aether.Content.Pipeline.RawModelProcessor.dll


BIN
bin/Release/Windows/Aether.Content.Pipeline.DDSImporter.dll


BIN
bin/Release/Windows/Aether.Content.Pipeline.RawModelProcessor.dll


BIN
packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta.nupkg


BIN
packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta/lib/portable-net40+sl40+win+wp80/MonoGame.Framework.Content.Pipeline.dll


BIN
packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta/lib/portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10/MonoGame.Framework.Content.Pipeline.dll


BIN
packages/MonoGame.Framework.Content.Pipeline.Portable.3.2.99.1-Beta/lib/portable-net45+win+wpa81+Xamarin.iOS10+MonoAndroid10+MonoTouch10/MonoGame.Framework.Content.Pipeline.dll


BIN
packages/MonoGame.Framework.Portable.3.2.99.1-Beta/MonoGame.Framework.Portable.3.2.99.1-Beta.nupkg


BIN
packages/MonoGame.Framework.Portable.3.2.99.1-Beta/lib/portable-net40+sl40+win+wp80/MonoGame.Framework.dll


BIN
packages/MonoGame.Framework.Portable.3.2.99.1-Beta/lib/portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10/MonoGame.Framework.dll


BIN
packages/MonoGame.Framework.Portable.3.2.99.1-Beta/lib/portable-net45+win+wpa81+Xamarin.iOS10+MonoAndroid10+MonoTouch10/MonoGame.Framework.dll


+ 5 - 0
packages/repositories.config

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<repositories>
+  <repository path="..\Content.Pipeline\DDSImporter\packages.config" />
+  <repository path="..\Content.Pipeline\RawModelProcessor\packages.config" />
+</repositories>