|
|
@@ -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")]
|