language: csharp
-dist: xenial
+dist: bionic
-dotnet: 2.1.502
+dotnet: 2.2.401-1
mono: latest
script:
- - nuget restore
- - msbuild
- - dotnet restore
- - dotnet build
+ - msbuild /t:restore
+ - msbuild
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net471;netstandard2.0</TargetFrameworks>
- <AssemblyVersion>0.1.9</AssemblyVersion>
+ <TargetFrameworks>netstandard2.0</TargetFrameworks>
+ <AssemblyVersion>0.1.10</AssemblyVersion>
<Description>MSBuild addon to compile and embed spirV shaders</Description>
<PackageId>SpirVTasks</PackageId>
<Project>
- <UsingTask AssemblyFile="$(MSBuildThisFileDirectory)..\lib\$(TargetFramework)\SpirVTasks_$(TargetFramework).dll" TaskName="SpirVTasks.CompileGLSLTask" />
+ <UsingTask AssemblyFile="$(MSBuildThisFileDirectory)..\lib\netstandard2.0\SpirVTasks_netstandard2.0.dll" TaskName="SpirVTasks.CompileGLSLTask" />
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)spirv.xml" />
<AvailableItemName Include="GLSLShader">
<RootDirectory>$(MSBuildThisFileDirectory)../</RootDirectory>
<Deterministic>true</Deterministic>
- <TargetFrameworks>net471;netstandard2.0</TargetFrameworks>
+ <TargetFrameworks>netstandard2.0</TargetFrameworks>
<RepositoryUrl>https://github.com/jpbruyere/vke.net</RepositoryUrl>
<License>MIT</License>
</PropertyGroup>
<ItemGroup>
- <!--<PackageReference Include="vke" Version="0.1.7" />-->
+ <!--<PackageReference Include="vke" Version="0.1.8-beta" />-->
<ProjectReference Include="..\..\vke\vke.csproj" />
- <PackageReference Include="SpirVTasks" Version="0.1.9-beta" />
- <PackageReference Include="Vulkan" Version="0.1.4" />
+ <PackageReference Include="SpirVTasks" Version="0.1.10-beta" />
+ <!--<PackageReference Include="Vulkan" Version="0.1.4" />-->
</ItemGroup>
<ItemGroup>
using System.Collections.Generic;
using System.IO;
using System.Reflection;
-using VK;
+using Vulkan;
namespace vke.DistanceFieldFont {
/// <summary>
<Project Sdk="Microsoft.NET.Sdk">
-
- <Import Project="$(RootDirectory)netfx.props" />
+
<PropertyGroup>
<AssemblyName>CVKL.DistanceFieldFont</AssemblyName>
<PackageId>CVKL.DistanceFieldFont</PackageId>
using System;
using System.Numerics;
using vke;
-using VK;
+using Vulkan;
namespace VkvgPipeline {
<Project Sdk="Microsoft.NET.Sdk">
-
- <Import Project="$(RootDirectory)netfx.props" />
+
<PropertyGroup>
<AssemblyName>CVKL.vkvgPipeline</AssemblyName>
<PackageId>CVKL.vkvgPipeline</PackageId>
using System.Numerics;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
using System.Collections.Generic;
namespace vke.glTF {
using System.Diagnostics;
using System.Numerics;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke.glTF {
/// <summary>
using System.Diagnostics;
using System.Numerics;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke.glTF {
/// <summary>
using glTFLoader;
using GL = glTFLoader.Schema;
-using VK;
+using Vulkan;
using System.Collections.Generic;
using System.IO;
namespace vke.glTF {
- using static VK.Utils;
+ using static Vulkan.Utils;
using static vke.Model;
/// <summary>
<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
+
<PropertyGroup>
<AssemblyName>CVKL.gltfLoader</AssemblyName>
<PackageId>CVKL.gltfLoader</PackageId>
<RootDirectory>$(MSBuildThisFileDirectory)../</RootDirectory>
<Deterministic>true</Deterministic>
- <TargetFrameworks>net471;netstandard2.0</TargetFrameworks>
+ <TargetFrameworks>net471</TargetFrameworks>
<RepositoryUrl>https://github.com/jpbruyere/vke.net</RepositoryUrl>
<License>MIT</License>
</PropertyGroup>
<ItemGroup>
- <!--<PackageReference Include="vke" Version="0.1.7" />-->
+ <!--<PackageReference Include="vke" Version="0.1.8-beta" />-->
<ProjectReference Include="..\..\vke\vke.csproj" />
- <PackageReference Include="SpirVTasks" Version="0.1.9-beta" />
- <PackageReference Include="Vulkan" Version="0.1.4" />
+ <PackageReference Include="SpirVTasks" Version="0.1.10-beta" />
+ <!--<PackageReference Include="Vulkan" Version="0.1.4" /> -->
</ItemGroup>
<ItemGroup>
-<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
+<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\..\addons\DistanceFieldFont\DistanceFieldFont.csproj" />
</ItemGroup>
- <ItemGroup>
- <Folder Include="shaders\" />
- </ItemGroup>
</Project>
using System.Runtime.InteropServices;
using Glfw;
-using VK;
+using Vulkan;
using vke;
using vke.DistanceFieldFont;
<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
<ItemGroup>
<ProjectReference Include="..\..\addons\gltfLoader\gltfLoader.csproj" />
</ItemGroup>
-
</Project>
using System.Runtime.InteropServices;
using vke;
using vke.glTF;
-using VK;
+using Vulkan;
namespace ModelSample
{
<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
-
<ItemGroup>
<PackageReference Include="glTF2Loader" Version="1.1.3-alpha" />
</ItemGroup>
using System.Runtime.InteropServices;
using Glfw;
using vke;
-using VK;
+using Vulkan;
namespace Textured {
class Program : VkWindow {
<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
<ItemGroup>
<ProjectReference Include="..\..\addons\VkvgPipeline\VkvgPipeline.csproj" />
</ItemGroup>
using System.Runtime.InteropServices;
using Glfw;
using vke;
-using VK;
+using Vulkan;
using Buffer = vke.Buffer;
namespace TextureCube {
-<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
- <PropertyGroup>
+<Project Sdk="Microsoft.NET.Sdk">
+ <PropertyGroup>
<IncludeDefaultNoneItems>false</IncludeDefaultNoneItems>
</PropertyGroup>
</Project>
using System.Numerics;
using System.Runtime.InteropServices;
using vke;
-using VK;
+using Vulkan;
namespace Triangle {
class Program : VkWindow {
using System;
using Glfw;
-using VK;
+using Vulkan;
using System.Threading;
namespace Crow {
-<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
+<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>
using System;
using Glfw;
-using VK;
+using Vulkan;
using vke;
namespace delaunay {
using System.Runtime.InteropServices;
using vke;
using vke.glTF;
-using VK;
+using Vulkan;
namespace deferred {
public class DeferredPbrRenderer : IDisposable {
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke {
public class EnvironmentCube : GraphicPipeline {
-<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
+<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<!-- <EnableDefaultNoneItems>false</EnableDefaultNoneItems> -->
using System;
using System.Numerics;
using Glfw;
-using VK;
+using Vulkan;
using vke;
using System.Collections.Generic;
using System.Linq;
using vke;
using vke.glTF;
using Glfw;
-using VK;
+using Vulkan;
namespace deferred {
class Deferred : VkWindow {
using System.Runtime.InteropServices;
using vke;
using vke.glTF;
-using VK;
+using Vulkan;
using static deferred.DeferredPbrRenderer;
namespace deferred {
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke {
class EnvironmentCube : GraphicPipeline {
using System.Numerics;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke {
using vke.glTF;
using System;
using System.Numerics;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke {
class PBRPipeline : GraphicPipeline {
using System.Numerics;
using System.Runtime.InteropServices;
using Glfw;
-using VK;
+using Vulkan;
using vke;
namespace pbrSample {
<Project Sdk="Microsoft.NET.Sdk">
- <Import Project="$(RootDirectory)netfx.props" />
<PropertyGroup>
<EnableDefaultNoneItems>false</EnableDefaultNoneItems>
</PropertyGroup>
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.Linq;
using System.Runtime.InteropServices;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public static class ExtensionMethods {
using System.Runtime.InteropServices;
using System.Text;
-namespace VK
+namespace Vulkan
{
- public unsafe class FixedUtf8String : IDisposable
+ public class FixedUtf8String : IDisposable
{
GCHandle _handle;
uint _numBytes;
- public byte* StringPtr => (byte*)_handle.AddrOfPinnedObject().ToPointer();
+ public IntPtr Ptr => _handle.AddrOfPinnedObject();
public FixedUtf8String(string s)
{
private string GetString()
{
- return Encoding.UTF8.GetString(StringPtr, (int)_numBytes);
+ return Marshal.PtrToStringUni(Ptr);
}
-
- //public void Dispose()
- //{
- // _handle.Free();
- //}
-
- public static implicit operator byte* (FixedUtf8String utf8String) => utf8String.StringPtr;
- public static implicit operator IntPtr (FixedUtf8String utf8String) => utf8String._handle.AddrOfPinnedObject ();
+
+ public static implicit operator IntPtr (FixedUtf8String utf8String) => utf8String.Ptr;
public static implicit operator FixedUtf8String(string s) => new FixedUtf8String(s);
public static implicit operator string(FixedUtf8String utf8String) => utf8String.GetString();
//
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
-using VK;
+using Vulkan;
-using static VK.Vk;
+using static Vulkan.Vk;
namespace vke {
#if MEMORY_POOLS
using System;
-using VK;
+using Vulkan;
namespace vke {
#if MEMORY_POOLS
//
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
-using VK;
+using Vulkan;
namespace vke {
/// <summary>
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke {
/// <summary>
using System;
using System.Numerics;
-namespace VK {
+namespace Vulkan {
public static partial class Utils {
public static string DataDirectory => "../../../datas/";
/// <summary>Throw an erro if VkResult != Success.</summary>
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
-namespace VK {
+namespace Vulkan {
public enum VertexAttributeType {
Position,
Normal,
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
-namespace VK {
+namespace Vulkan {
[Flags]
public enum VkFormatSizeFlag {
SizePacked = 0x00000001,
using System.Diagnostics;
using System.Linq;
using Glfw;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
//
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
//
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
using System;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
-using static VK.Vk;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
using System;
using System.Runtime.InteropServices;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public sealed class ComputePipeline : Pipeline {
using System;
using System.Numerics;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke {
public class DebugDrawPipeline : GraphicPipeline {
// THE SOFTWARE.
using System;
using System.Runtime.InteropServices;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
using System;
using System.Runtime.InteropServices;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke.DebugUtils {
using System;
using System.Collections.Generic;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public sealed class DescriptorPool : Activable {
//
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System.Collections.Generic;
-using VK;
+using Vulkan;
namespace vke {
public class DescriptorSet {
// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
using System;
using System.Collections.Generic;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
using System.IO;
using System.Linq;
using System.Reflection;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
using System;
using System.Collections.Generic;
using System.Linq;
-using VK;
+using Vulkan;
-using static VK.Vk;
+using static Vulkan.Vk;
namespace vke {
// THE SOFTWARE.
using System;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
namespace vke {
// THE SOFTWARE.
using System;
using System.Collections.Generic;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public class GraphicPipeline : Pipeline {
using System.Numerics;
using System.Reflection;
using System.Runtime.InteropServices;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public class GraphicPipelineConfig {
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
// THE SOFTWARE.
using System;
using System.Diagnostics;
-using VK;
+using Vulkan;
-using static VK.Vk;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
-using VK;
-using static VK.Vk;
-using static VK.Utils;
+using Vulkan;
+using static Vulkan.Vk;
+using static Vulkan.Utils;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
+using System.Linq;
+
namespace vke {
public class PhysicalDeviceCollection : IEnumerable<PhysicalDevice> {
VkInstance inst;
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public abstract class Pipeline : Activable {
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
-using static VK.Vk;
+using static Vulkan.Vk;
namespace vke {
/// <summary>
using System;
using System.Collections.Generic;
using System.Linq;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public sealed class PipelineLayout : Activable {
// THE SOFTWARE.
using System;
using System.Collections.Generic;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public class TimestampQueryPool : QueryPool {
// THE SOFTWARE.
using System;
using System.Collections;
-using VK;
+using Vulkan;
-using static VK.Vk;
+using static Vulkan.Vk;
namespace vke {
using System;
using System.Collections.Generic;
using System.Linq;
-using VK;
+using Vulkan;
-using static VK.Vk;
+using static Vulkan.Vk;
namespace vke {
public class RenderPass : Activable {
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
-using VK;
+using Vulkan;
-using static VK.Vk;
+using static Vulkan.Vk;
namespace vke {
[DebuggerDisplay ("{previous.name} <- {name} -> {next.name}")]
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System.Collections.Generic;
-using VK;
+using Vulkan;
namespace vke {
public class SubPass {
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
-using VK;
-using static VK.Vk;
+using Vulkan;
+using static Vulkan.Vk;
namespace vke {
public class SwapChain : Activable {
// See the License for the specific language governing permissions and
// limitations under the License.
using System.Diagnostics;
-using VK;
+using Vulkan;
namespace KTX
{
using System;
using System.IO;
-using VK;
+using Vulkan;
using vke;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Numerics;
-using VK;
+using Vulkan;
namespace vke {
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net471;netstandard2.0</TargetFrameworks>
+ <TargetFramework>netstandard2.0</TargetFramework>
- <ReleaseVersion>0.1.7</ReleaseVersion>
+ <ReleaseVersion>0.1.8</ReleaseVersion>
<AssemblyVersion>$(ReleaseVersion)</AssemblyVersion>
<Description>C# vulkan library with IDispose model and references counting</Description>
<RepositoryUrl>https://github.com/jpbruyere/vke.net</RepositoryUrl>
<PackageTags>vulkan game engine compute glfw c#</PackageTags>
- <PackageVersion>$(AssemblyVersion)</PackageVersion>
+ <PackageVersion>$(AssemblyVersion)-beta</PackageVersion>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
<PackageProjectUrl>https://github.com/jpbruyere/vke.net/blob/master/README.md</PackageProjectUrl>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="SpirVTasks" Version="0.1.9-beta" />
- <PackageReference Include="Vulkan" Version="0.1.4" />
+ <PackageReference Include="SpirVTasks" Version="0.1.10-beta" />
+ <PackageReference Include="Vulkan" Version="0.1.6-beta" />
</ItemGroup>
<ItemGroup>
<GLSLShader Include="shaders\**\*.frag;shaders\**\*.vert;shaders\**\*.comp;shaders\**\*.geom">