proposed Refresh 2 changes
parent
b5325e6d03
commit
ad0b168c47
|
@ -4,7 +4,6 @@
|
|||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<RootNamespace>RefreshCS</RootNamespace>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Platforms>x64</Platforms>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
422
src/Refresh.cs
422
src/Refresh.cs
|
@ -35,8 +35,8 @@ namespace RefreshCS
|
|||
|
||||
/* Version */
|
||||
|
||||
public const uint REFRESH_MAJOR_VERSION = 1;
|
||||
public const uint REFRESH_MINOR_VERSION = 15;
|
||||
public const uint REFRESH_MAJOR_VERSION = 2;
|
||||
public const uint REFRESH_MINOR_VERSION = 0;
|
||||
public const uint REFRESH_PATCH_VERSION = 0;
|
||||
|
||||
public const uint REFRESH_COMPILED_VERSION = (
|
||||
|
@ -308,6 +308,12 @@ namespace RefreshCS
|
|||
IntOpaqueWhite
|
||||
}
|
||||
|
||||
public enum SetDataOptions
|
||||
{
|
||||
Discard,
|
||||
Overwrite
|
||||
}
|
||||
|
||||
public enum Backend
|
||||
{
|
||||
DontCare,
|
||||
|
@ -358,10 +364,31 @@ namespace RefreshCS
|
|||
public struct TextureSlice
|
||||
{
|
||||
public IntPtr texture;
|
||||
public Rect rectangle;
|
||||
public uint depth;
|
||||
public uint layer;
|
||||
public uint level;
|
||||
public uint mipLevel;
|
||||
public uint baseLayer;
|
||||
public uint layerCount;
|
||||
public uint x;
|
||||
public uint y;
|
||||
public uint z;
|
||||
public uint w;
|
||||
public uint h;
|
||||
public uint d;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct BufferImageCopy
|
||||
{
|
||||
public uint bufferOffset;
|
||||
public uint bufferStride;
|
||||
public uint bufferImageHeight;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct BufferCopy
|
||||
{
|
||||
public uint srcOffset;
|
||||
public uint dstOffset;
|
||||
public uint size;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
|
@ -469,7 +496,7 @@ namespace RefreshCS
|
|||
public IntPtr shaderModule;
|
||||
[MarshalAs(UnmanagedType.LPStr)]
|
||||
public string entryPointName;
|
||||
public ulong uniformBufferSize;
|
||||
public uint uniformBufferSize;
|
||||
public uint samplerBindingCount;
|
||||
}
|
||||
|
||||
|
@ -479,7 +506,7 @@ namespace RefreshCS
|
|||
public IntPtr shaderModule;
|
||||
[MarshalAs(UnmanagedType.LPStr)]
|
||||
public string entryPointName;
|
||||
public ulong uniformBufferSize;
|
||||
public uint uniformBufferSize;
|
||||
public uint bufferBindingCount;
|
||||
public uint imageBindingCount;
|
||||
}
|
||||
|
@ -511,8 +538,7 @@ namespace RefreshCS
|
|||
public CompareOp compareOp;
|
||||
public byte depthBoundsTestEnable;
|
||||
public byte stencilTestEnable;
|
||||
public StencilOpState frontStencilState;
|
||||
public StencilOpState backStencilState;
|
||||
public StencilOpState stencilState;
|
||||
public float minDepthBounds;
|
||||
public float maxDepthBounds;
|
||||
}
|
||||
|
@ -599,64 +625,7 @@ namespace RefreshCS
|
|||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DestroyDevice(IntPtr device);
|
||||
|
||||
/* Drawing */
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DrawInstancedPrimitives(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
uint baseVertex,
|
||||
uint startIndex,
|
||||
uint primitiveCount,
|
||||
uint instanceCount,
|
||||
uint vertexParamOffset,
|
||||
uint fragmentParamOffset
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DrawIndexedPrimitives(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
uint baseVertex,
|
||||
uint startIndex,
|
||||
uint primitiveCount,
|
||||
uint vertexParamOffset,
|
||||
uint fragmentParamOffset
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DrawPrimitives(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
uint vertexStart,
|
||||
uint primitiveCount,
|
||||
uint vertexParamOffset,
|
||||
uint fragmentParamOffset
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DrawPrimitivesIndirect(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr buffer,
|
||||
uint offsetInBytes,
|
||||
uint drawCount,
|
||||
uint stride,
|
||||
uint vertexParamOffset,
|
||||
uint fragmentParamOffset
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DispatchCompute(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
uint groupCountX,
|
||||
uint groupCountY,
|
||||
uint groupCountZ,
|
||||
uint computeParamOffset
|
||||
);
|
||||
|
||||
/* Creates */
|
||||
/* State Creation */
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern IntPtr Refresh_CreateComputePipeline(
|
||||
|
@ -689,100 +658,16 @@ namespace RefreshCS
|
|||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern IntPtr Refresh_CreateBuffer(
|
||||
public static extern IntPtr Refresh_CreateGpuBuffer(
|
||||
IntPtr device,
|
||||
BufferUsageFlags usageFlags,
|
||||
uint sizeInBytes
|
||||
);
|
||||
|
||||
/* Setters */
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_SetTextureData(
|
||||
public static extern IntPtr Refresh_CreateCpuBuffer(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
in TextureSlice textureSlice,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_SetTextureDataYUV(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr y,
|
||||
IntPtr u,
|
||||
IntPtr v,
|
||||
uint yWidth,
|
||||
uint yHeight,
|
||||
uint uvWidth,
|
||||
uint uvHeight,
|
||||
IntPtr yDataPtr,
|
||||
IntPtr uDataPtr,
|
||||
IntPtr vDataPtr,
|
||||
uint yDataLength,
|
||||
uint uvDataLength,
|
||||
uint yStride,
|
||||
uint uvStride
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_CopyTextureToTexture(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
in TextureSlice sourceTextureSlice,
|
||||
in TextureSlice destinationTextureSlice,
|
||||
Filter filter
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_CopyTextureToBuffer(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
in TextureSlice textureSlice,
|
||||
IntPtr buffer
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_GetBufferData(
|
||||
IntPtr device,
|
||||
IntPtr buffer,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_SetBufferData(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr buffer,
|
||||
uint offsetInBytes,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern uint Refresh_PushVertexShaderUniforms(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern uint Refresh_PushFragmentShaderUniforms(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern uint Refresh_PushComputeShaderUniforms(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
uint sizeInBytes
|
||||
);
|
||||
|
||||
/* Disposal */
|
||||
|
@ -800,7 +685,13 @@ namespace RefreshCS
|
|||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_QueueDestroyBuffer(
|
||||
public static extern void Refresh_QueueDestroyGpuBuffer(
|
||||
IntPtr device,
|
||||
IntPtr buffer
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_QueueDestroyCpuBuffer(
|
||||
IntPtr device,
|
||||
IntPtr buffer
|
||||
);
|
||||
|
@ -843,12 +734,6 @@ namespace RefreshCS
|
|||
DepthStencilAttachmentInfo* depthStencilAttachmentInfo /* can be NULL */
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_EndRenderPass(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_BindGraphicsPipeline(
|
||||
IntPtr device,
|
||||
|
@ -905,6 +790,73 @@ namespace RefreshCS
|
|||
IntPtr pSamplers
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_PushVertexShaderUniforms(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_PushFragmentShaderUniforms(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DrawInstancedPrimitives(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
uint baseVertex,
|
||||
uint startIndex,
|
||||
uint primitiveCount,
|
||||
uint instanceCount
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DrawIndexedPrimitives(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
uint baseVertex,
|
||||
uint startIndex,
|
||||
uint primitiveCount
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DrawPrimitives(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
uint vertexStart,
|
||||
uint primitiveCount
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DrawPrimitivesIndirect(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr buffer,
|
||||
uint offsetInBytes,
|
||||
uint drawCount,
|
||||
uint stride
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_EndRenderPass(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer
|
||||
);
|
||||
|
||||
/* Compute Pass */
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_BeginComputePass(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_BindComputePipeline(
|
||||
IntPtr device,
|
||||
|
@ -923,7 +875,142 @@ namespace RefreshCS
|
|||
public static extern void Refresh_BindComputeTextures(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr pTextures
|
||||
IntPtr pTextures,
|
||||
IntPtr pLevels
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_PushComputeShaderUniforms(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr data,
|
||||
uint dataLengthInBytes
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DispatchCompute(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
uint groupCountX,
|
||||
uint groupCountY,
|
||||
uint groupCountZ
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_EndComputePass(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer
|
||||
);
|
||||
|
||||
/* CpuBuffer Set/Get */
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern IntPtr Refresh_SetData(
|
||||
IntPtr device,
|
||||
IntPtr data,
|
||||
IntPtr cpuBuffer,
|
||||
in BufferCopy copyParams,
|
||||
SetDataOptions option
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_GetData(
|
||||
IntPtr device,
|
||||
IntPtr cpuBuffer,
|
||||
IntPtr data,
|
||||
in BufferCopy copyParams
|
||||
);
|
||||
|
||||
/* Copy Pass */
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_BeginCopyPass(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_UploadToTexture(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr cpuBuffer,
|
||||
in TextureSlice textureSlice,
|
||||
in BufferImageCopy copyParams
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_UploadToBuffer(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr cpuBuffer,
|
||||
IntPtr gpuBuffer,
|
||||
in BufferCopy copyParams
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DownloadFromTexture(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
in TextureSlice textureSlice,
|
||||
IntPtr cpuBuffer,
|
||||
in BufferImageCopy copyParams
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_DownloadFromBuffer(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr gpuBuffer,
|
||||
IntPtr cpuBuffer,
|
||||
in BufferCopy copyParams
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_CopyTextureToTexture(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
in TextureSlice source,
|
||||
in TextureSlice destination
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_CopyTextureToBuffer(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
in TextureSlice textureSlice,
|
||||
IntPtr gpuBuffer,
|
||||
in BufferImageCopy copyParams
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_CopyBufferToTexture(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr gpuBuffer,
|
||||
in TextureSlice textureSlice,
|
||||
in BufferImageCopy bufferImageCopy
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_CopyBufferToBuffer(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr source,
|
||||
IntPtr destination,
|
||||
in BufferCopy copyParams
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_GenerateMipmaps(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer,
|
||||
IntPtr texture
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_EndCopyPass(
|
||||
IntPtr device,
|
||||
IntPtr commandBuffer
|
||||
);
|
||||
|
||||
/* Submission/Presentation */
|
||||
|
@ -1014,6 +1101,15 @@ namespace RefreshCS
|
|||
out int len
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern byte Refresh_Image_Info(
|
||||
IntPtr bufferPtr,
|
||||
int bufferLength,
|
||||
out int w,
|
||||
out int h,
|
||||
out int len
|
||||
);
|
||||
|
||||
[DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)]
|
||||
public static extern void Refresh_Image_Free(IntPtr mem);
|
||||
|
||||
|
|
Loading…
Reference in New Issue