|
|
|
@ -9,12 +9,14 @@ namespace Avalonia.OpenGL |
|
|
|
public class GlInterface : GlInterfaceBase |
|
|
|
{ |
|
|
|
public string Version { get; } |
|
|
|
public string Vendor { get; } |
|
|
|
public string Renderer { get; } |
|
|
|
|
|
|
|
public GlInterface(Func<string, bool, IntPtr> getProcAddress) : base(getProcAddress) |
|
|
|
{ |
|
|
|
var versionPtr = GetString(GlConsts.GL_VERSION); |
|
|
|
if (versionPtr != IntPtr.Zero) |
|
|
|
Version = Marshal.PtrToStringAnsi(versionPtr); |
|
|
|
Version = GetString(GlConsts.GL_VERSION); |
|
|
|
Renderer = GetString(GlConsts.GL_RENDERER); |
|
|
|
Vendor = GetString(GlConsts.GL_VENDOR); |
|
|
|
} |
|
|
|
|
|
|
|
public GlInterface(Func<Utf8Buffer, IntPtr> n) : this(ConvertNative(n)) |
|
|
|
@ -54,7 +56,15 @@ namespace Avalonia.OpenGL |
|
|
|
|
|
|
|
public delegate IntPtr GlGetString(int v); |
|
|
|
[GlEntryPoint("glGetString")] |
|
|
|
public GlGetString GetString { get; } |
|
|
|
public GlGetString GetStringNative { get; } |
|
|
|
|
|
|
|
public string GetString(int v) |
|
|
|
{ |
|
|
|
var ptr = GetStringNative(v); |
|
|
|
if (ptr != IntPtr.Zero) |
|
|
|
return Marshal.PtrToStringAnsi(ptr); |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
public delegate void GlGetIntegerv(int name, out int rv); |
|
|
|
[GlEntryPoint("glGetIntegerv")] |
|
|
|
|