Opentk/Source/OpenTK/OpenGL/Bindings/Glu.cs

957 lines
40 KiB
C#

namespace OpenTK.OpenGL
{
using System;
using System.Runtime.InteropServices;
public static partial class Glu
{
public static
void BeginCurve(int nurb)
{
Delegates.gluBeginCurve((int)nurb);
}
public static
void BeginPolygon(int tess)
{
Delegates.gluBeginPolygon((int)tess);
}
public static
void BeginSurface(int nurb)
{
Delegates.gluBeginSurface((int)nurb);
}
public static
void BeginTrim(int nurb)
{
Delegates.gluBeginTrim((int)nurb);
}
public static
Int32 Build1DMipmapLevel(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, GL.Enums.PixelFormat format, GL.Enums.PixelType type, Int32 level, Int32 @base, Int32 max, IntPtr data)
{
return Delegates.gluBuild1DMipmapLevels((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (Int32)level, (Int32)@base, (Int32)max, (IntPtr)data);
}
public static
Int32 Build1DMipmapLevel(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, GL.Enums.PixelFormat format, GL.Enums.PixelType type, Int32 level, Int32 @base, Int32 max, [In, Out] object data)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
return Delegates.gluBuild1DMipmapLevels((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (Int32)level, (Int32)@base, (Int32)max, (IntPtr)data_ptr.AddrOfPinnedObject());
}
finally
{
data_ptr.Free();
}
}
public static
Int32 Build1DMipmap(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, GL.Enums.PixelFormat format, GL.Enums.PixelType type, IntPtr data)
{
return Delegates.gluBuild1DMipmaps((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (IntPtr)data);
}
public static
Int32 Build1DMipmap(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, GL.Enums.PixelFormat format, GL.Enums.PixelType type, [In, Out] object data)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
return Delegates.gluBuild1DMipmaps((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
}
finally
{
data_ptr.Free();
}
}
public static
Int32 Build2DMipmapLevel(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, Int32 height, GL.Enums.PixelFormat format, GL.Enums.PixelType type, Int32 level, Int32 @base, Int32 max, IntPtr data)
{
return Delegates.gluBuild2DMipmapLevels((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (Int32)height, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (Int32)level, (Int32)@base, (Int32)max, (IntPtr)data);
}
public static
Int32 Build2DMipmapLevel(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, Int32 height, GL.Enums.PixelFormat format, GL.Enums.PixelType type, Int32 level, Int32 @base, Int32 max, [In, Out] object data)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
return Delegates.gluBuild2DMipmapLevels((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (Int32)height, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (Int32)level, (Int32)@base, (Int32)max, (IntPtr)data_ptr.AddrOfPinnedObject());
}
finally
{
data_ptr.Free();
}
}
public static
Int32 Build2DMipmap(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, Int32 height, GL.Enums.PixelFormat format, GL.Enums.PixelType type, IntPtr data)
{
return Delegates.gluBuild2DMipmaps((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (Int32)height, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (IntPtr)data);
}
public static
Int32 Build2DMipmap(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, Int32 height, GL.Enums.PixelFormat format, GL.Enums.PixelType type, [In, Out] object data)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
return Delegates.gluBuild2DMipmaps((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (Int32)height, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
}
finally
{
data_ptr.Free();
}
}
public static
Int32 Build3DMipmapLevel(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, GL.Enums.PixelFormat format, GL.Enums.PixelType type, Int32 level, Int32 @base, Int32 max, IntPtr data)
{
return Delegates.gluBuild3DMipmapLevels((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (Int32)level, (Int32)@base, (Int32)max, (IntPtr)data);
}
public static
Int32 Build3DMipmapLevel(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, GL.Enums.PixelFormat format, GL.Enums.PixelType type, Int32 level, Int32 @base, Int32 max, [In, Out] object data)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
return Delegates.gluBuild3DMipmapLevels((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (Int32)level, (Int32)@base, (Int32)max, (IntPtr)data_ptr.AddrOfPinnedObject());
}
finally
{
data_ptr.Free();
}
}
public static
Int32 Build3DMipmap(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, GL.Enums.PixelFormat format, GL.Enums.PixelType type, IntPtr data)
{
return Delegates.gluBuild3DMipmaps((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (IntPtr)data);
}
public static
Int32 Build3DMipmap(GL.Enums.TextureTarget target, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, GL.Enums.PixelFormat format, GL.Enums.PixelType type, [In, Out] object data)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
return Delegates.gluBuild3DMipmaps((GL.Enums.TextureTarget)target, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (GL.Enums.PixelFormat)format, (GL.Enums.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
}
finally
{
data_ptr.Free();
}
}
public static
Boolean CheckExtension(Byte[] extName, Byte[] extString)
{
unsafe
{
fixed (Byte* extName_ptr = extName)
fixed (Byte* extString_ptr = extString)
{
return Delegates.gluCheckExtension((Byte*)extName_ptr, (Byte*)extString_ptr);
}
}
}
public static
Boolean CheckExtension(ref Byte extName, ref Byte extString)
{
unsafe
{
fixed (Byte* extName_ptr = &extName)
fixed (Byte* extString_ptr = &extString)
{
return Delegates.gluCheckExtension((Byte*)extName_ptr, (Byte*)extString_ptr);
}
}
}
[System.CLSCompliant(false)]
public static
unsafe Boolean CheckExtension(Byte* extName, Byte* extString)
{
return Delegates.gluCheckExtension((Byte*)extName, (Byte*)extString);
}
public static
void Cylinder(int quad, double @base, double top, double height, Int32 slices, Int32 stacks)
{
Delegates.gluCylinder((int)quad, (double)@base, (double)top, (double)height, (Int32)slices, (Int32)stacks);
}
public static
void DeleteNurbsRenderer(int nurb)
{
Delegates.gluDeleteNurbsRenderer((int)nurb);
}
public static
void DeleteQuadric(int quad)
{
Delegates.gluDeleteQuadric((int)quad);
}
public static
void DeleteTes(int tess)
{
Delegates.gluDeleteTess((int)tess);
}
public static
void Disk(int quad, double inner, double outer, Int32 slices, Int32 loops)
{
Delegates.gluDisk((int)quad, (double)inner, (double)outer, (Int32)slices, (Int32)loops);
}
public static
void EndCurve(int nurb)
{
Delegates.gluEndCurve((int)nurb);
}
public static
void EndPolygon(int tess)
{
Delegates.gluEndPolygon((int)tess);
}
public static
void EndSurface(int nurb)
{
Delegates.gluEndSurface((int)nurb);
}
public static
void EndTrim(int nurb)
{
Delegates.gluEndTrim((int)nurb);
}
public static
string ErrorString(Glu.Enums.ErrorCode error)
{
return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(Delegates.gluErrorString((Glu.Enums.ErrorCode)error));
}
public static
string GetString(Glu.Enums.StringName name)
{
return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(Delegates.gluGetString((Glu.Enums.StringName)name));
}
public static
void GetNurbsProperty(int nurb, Glu.Enums.NurbsProperty property, [Out] float[] data)
{
unsafe
{
fixed (float* data_ptr = data)
{
Delegates.gluGetNurbsProperty((int)nurb, (Glu.Enums.NurbsProperty)property, (float*)data_ptr);
}
}
}
public static
void GetNurbsProperty(int nurb, Glu.Enums.NurbsProperty property, [Out] out float data)
{
unsafe
{
fixed (float* data_ptr = &data)
{
Delegates.gluGetNurbsProperty((int)nurb, (Glu.Enums.NurbsProperty)property, (float*)data_ptr);
data = *data_ptr;
}
}
}
[System.CLSCompliant(false)]
public static
unsafe void GetNurbsProperty(int nurb, Glu.Enums.NurbsProperty property, [Out] float* data)
{
Delegates.gluGetNurbsProperty((int)nurb, (Glu.Enums.NurbsProperty)property, (float*)data);
}
public static
void GetTessProperty(int tess, Glu.Enums.TessProperty which, [Out] double[] data)
{
unsafe
{
fixed (double* data_ptr = data)
{
Delegates.gluGetTessProperty((int)tess, (Glu.Enums.TessProperty)which, (double*)data_ptr);
}
}
}
public static
void GetTessProperty(int tess, Glu.Enums.TessProperty which, [Out] out double data)
{
unsafe
{
fixed (double* data_ptr = &data)
{
Delegates.gluGetTessProperty((int)tess, (Glu.Enums.TessProperty)which, (double*)data_ptr);
data = *data_ptr;
}
}
}
[System.CLSCompliant(false)]
public static
unsafe void GetTessProperty(int tess, Glu.Enums.TessProperty which, [Out] double* data)
{
Delegates.gluGetTessProperty((int)tess, (Glu.Enums.TessProperty)which, (double*)data);
}
public static
void LoadSamplingMatrices(int nurb, float[] model, float[] perspective, Int32[] view)
{
unsafe
{
fixed (float* model_ptr = model)
fixed (float* perspective_ptr = perspective)
fixed (Int32* view_ptr = view)
{
Delegates.gluLoadSamplingMatrices((int)nurb, (float*)model_ptr, (float*)perspective_ptr, (Int32*)view_ptr);
}
}
}
public static
void LoadSamplingMatrices(int nurb, ref float model, ref float perspective, ref Int32 view)
{
unsafe
{
fixed (float* model_ptr = &model)
fixed (float* perspective_ptr = &perspective)
fixed (Int32* view_ptr = &view)
{
Delegates.gluLoadSamplingMatrices((int)nurb, (float*)model_ptr, (float*)perspective_ptr, (Int32*)view_ptr);
}
}
}
[System.CLSCompliant(false)]
public static
unsafe void LoadSamplingMatrices(int nurb, float* model, float* perspective, Int32* view)
{
Delegates.gluLoadSamplingMatrices((int)nurb, (float*)model, (float*)perspective, (Int32*)view);
}
public static
void LookAt(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX, double upY, double upZ)
{
Delegates.gluLookAt((double)eyeX, (double)eyeY, (double)eyeZ, (double)centerX, (double)centerY, (double)centerZ, (double)upX, (double)upY, (double)upZ);
}
public static
int NewNurbsRenderer()
{
return Delegates.gluNewNurbsRenderer();
}
public static
int NewQuadric()
{
return Delegates.gluNewQuadric();
}
public static
int NewTes()
{
return Delegates.gluNewTess();
}
public static
void NextContour(int tess, Glu.Enums.TessContour type)
{
Delegates.gluNextContour((int)tess, (Glu.Enums.TessContour)type);
}
public static
void NurbsCallback(int nurb, Glu.Enums.NurbsCallback which, IntPtr CallBackFunc)
{
Delegates.gluNurbsCallback((int)nurb, (Glu.Enums.NurbsCallback)which, (IntPtr)CallBackFunc);
}
public static
void NurbsCallback(int nurb, Glu.Enums.NurbsCallback which, [In, Out] object CallBackFunc)
{
System.Runtime.InteropServices.GCHandle CallBackFunc_ptr = System.Runtime.InteropServices.GCHandle.Alloc(CallBackFunc, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
Delegates.gluNurbsCallback((int)nurb, (Glu.Enums.NurbsCallback)which, (IntPtr)CallBackFunc_ptr.AddrOfPinnedObject());
}
finally
{
CallBackFunc_ptr.Free();
}
}
public static
void NurbsCallbackData(int nurb, IntPtr userData)
{
Delegates.gluNurbsCallbackData((int)nurb, (IntPtr)userData);
}
public static
void NurbsCallbackData(int nurb, [In, Out] object userData)
{
System.Runtime.InteropServices.GCHandle userData_ptr = System.Runtime.InteropServices.GCHandle.Alloc(userData, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
Delegates.gluNurbsCallbackData((int)nurb, (IntPtr)userData_ptr.AddrOfPinnedObject());
}
finally
{
userData_ptr.Free();
}
}
public static
void NurbsCurve(int nurb, Int32 knotCount, [Out] float[] knots, Int32 stride, [Out] float[] control, Int32 order, GL.Enums.MapTarget type)
{
unsafe
{
fixed (float* knots_ptr = knots)
fixed (float* control_ptr = control)
{
Delegates.gluNurbsCurve((int)nurb, (Int32)knotCount, (float*)knots_ptr, (Int32)stride, (float*)control_ptr, (Int32)order, (GL.Enums.MapTarget)type);
}
}
}
public static
void NurbsCurve(int nurb, Int32 knotCount, [Out] out float knots, Int32 stride, [Out] out float control, Int32 order, GL.Enums.MapTarget type)
{
unsafe
{
fixed (float* knots_ptr = &knots)
fixed (float* control_ptr = &control)
{
Delegates.gluNurbsCurve((int)nurb, (Int32)knotCount, (float*)knots_ptr, (Int32)stride, (float*)control_ptr, (Int32)order, (GL.Enums.MapTarget)type);
knots = *knots_ptr;
control = *control_ptr;
}
}
}
[System.CLSCompliant(false)]
public static
unsafe void NurbsCurve(int nurb, Int32 knotCount, [Out] float* knots, Int32 stride, [Out] float* control, Int32 order, GL.Enums.MapTarget type)
{
Delegates.gluNurbsCurve((int)nurb, (Int32)knotCount, (float*)knots, (Int32)stride, (float*)control, (Int32)order, (GL.Enums.MapTarget)type);
}
public static
void NurbsProperty(int nurb, Glu.Enums.NurbsProperty property, float value)
{
Delegates.gluNurbsProperty((int)nurb, (Glu.Enums.NurbsProperty)property, (float)value);
}
public static
void NurbsSurface(int nurb, Int32 sKnotCount, float[] sKnots, Int32 tKnotCount, float[] tKnots, Int32 sStride, Int32 tStride, float[] control, Int32 sOrder, Int32 tOrder, GL.Enums.MapTarget type)
{
unsafe
{
fixed (float* sKnots_ptr = sKnots)
fixed (float* tKnots_ptr = tKnots)
fixed (float* control_ptr = control)
{
Delegates.gluNurbsSurface((int)nurb, (Int32)sKnotCount, (float*)sKnots_ptr, (Int32)tKnotCount, (float*)tKnots_ptr, (Int32)sStride, (Int32)tStride, (float*)control_ptr, (Int32)sOrder, (Int32)tOrder, (GL.Enums.MapTarget)type);
}
}
}
public static
void NurbsSurface(int nurb, Int32 sKnotCount, ref float sKnots, Int32 tKnotCount, ref float tKnots, Int32 sStride, Int32 tStride, ref float control, Int32 sOrder, Int32 tOrder, GL.Enums.MapTarget type)
{
unsafe
{
fixed (float* sKnots_ptr = &sKnots)
fixed (float* tKnots_ptr = &tKnots)
fixed (float* control_ptr = &control)
{
Delegates.gluNurbsSurface((int)nurb, (Int32)sKnotCount, (float*)sKnots_ptr, (Int32)tKnotCount, (float*)tKnots_ptr, (Int32)sStride, (Int32)tStride, (float*)control_ptr, (Int32)sOrder, (Int32)tOrder, (GL.Enums.MapTarget)type);
}
}
}
[System.CLSCompliant(false)]
public static
unsafe void NurbsSurface(int nurb, Int32 sKnotCount, float* sKnots, Int32 tKnotCount, float* tKnots, Int32 sStride, Int32 tStride, float* control, Int32 sOrder, Int32 tOrder, GL.Enums.MapTarget type)
{
Delegates.gluNurbsSurface((int)nurb, (Int32)sKnotCount, (float*)sKnots, (Int32)tKnotCount, (float*)tKnots, (Int32)sStride, (Int32)tStride, (float*)control, (Int32)sOrder, (Int32)tOrder, (GL.Enums.MapTarget)type);
}
public static
void Ortho2D(double left, double right, double bottom, double top)
{
Delegates.gluOrtho2D((double)left, (double)right, (double)bottom, (double)top);
}
public static
void PartialDisk(int quad, double inner, double outer, Int32 slices, Int32 loops, double start, double sweep)
{
Delegates.gluPartialDisk((int)quad, (double)inner, (double)outer, (Int32)slices, (Int32)loops, (double)start, (double)sweep);
}
public static
void Perspective(double fovy, double aspect, double zNear, double zFar)
{
Delegates.gluPerspective((double)fovy, (double)aspect, (double)zNear, (double)zFar);
}
public static
void PickMatrix(double x, double y, double delX, double delY, [Out] Int32[] viewport)
{
unsafe
{
fixed (Int32* viewport_ptr = viewport)
{
Delegates.gluPickMatrix((double)x, (double)y, (double)delX, (double)delY, (Int32*)viewport_ptr);
}
}
}
public static
void PickMatrix(double x, double y, double delX, double delY, [Out] out Int32 viewport)
{
unsafe
{
fixed (Int32* viewport_ptr = &viewport)
{
Delegates.gluPickMatrix((double)x, (double)y, (double)delX, (double)delY, (Int32*)viewport_ptr);
viewport = *viewport_ptr;
}
}
}
[System.CLSCompliant(false)]
public static
unsafe void PickMatrix(double x, double y, double delX, double delY, [Out] Int32* viewport)
{
Delegates.gluPickMatrix((double)x, (double)y, (double)delX, (double)delY, (Int32*)viewport);
}
public static
Int32 Project(double objX, double objY, double objZ, double[] model, double[] proj, Int32[] view, double[] winX, double[] winY, double[] winZ)
{
unsafe
{
fixed (double* model_ptr = model)
fixed (double* proj_ptr = proj)
fixed (Int32* view_ptr = view)
fixed (double* winX_ptr = winX)
fixed (double* winY_ptr = winY)
fixed (double* winZ_ptr = winZ)
{
return Delegates.gluProject((double)objX, (double)objY, (double)objZ, (double*)model_ptr, (double*)proj_ptr, (Int32*)view_ptr, (double*)winX_ptr, (double*)winY_ptr, (double*)winZ_ptr);
}
}
}
public static
Int32 Project(double objX, double objY, double objZ, ref double model, ref double proj, ref Int32 view, ref double winX, ref double winY, ref double winZ)
{
unsafe
{
fixed (double* model_ptr = &model)
fixed (double* proj_ptr = &proj)
fixed (Int32* view_ptr = &view)
fixed (double* winX_ptr = &winX)
fixed (double* winY_ptr = &winY)
fixed (double* winZ_ptr = &winZ)
{
return Delegates.gluProject((double)objX, (double)objY, (double)objZ, (double*)model_ptr, (double*)proj_ptr, (Int32*)view_ptr, (double*)winX_ptr, (double*)winY_ptr, (double*)winZ_ptr);
}
}
}
[System.CLSCompliant(false)]
public static
unsafe Int32 Project(double objX, double objY, double objZ, double* model, double* proj, Int32* view, double* winX, double* winY, double* winZ)
{
return Delegates.gluProject((double)objX, (double)objY, (double)objZ, (double*)model, (double*)proj, (Int32*)view, (double*)winX, (double*)winY, (double*)winZ);
}
public static
void PwlCurve(int nurb, Int32 count, float[] data, Int32 stride, Glu.Enums.NurbsTrim type)
{
unsafe
{
fixed (float* data_ptr = data)
{
Delegates.gluPwlCurve((int)nurb, (Int32)count, (float*)data_ptr, (Int32)stride, (Glu.Enums.NurbsTrim)type);
}
}
}
public static
void PwlCurve(int nurb, Int32 count, ref float data, Int32 stride, Glu.Enums.NurbsTrim type)
{
unsafe
{
fixed (float* data_ptr = &data)
{
Delegates.gluPwlCurve((int)nurb, (Int32)count, (float*)data_ptr, (Int32)stride, (Glu.Enums.NurbsTrim)type);
}
}
}
[System.CLSCompliant(false)]
public static
unsafe void PwlCurve(int nurb, Int32 count, float* data, Int32 stride, Glu.Enums.NurbsTrim type)
{
Delegates.gluPwlCurve((int)nurb, (Int32)count, (float*)data, (Int32)stride, (Glu.Enums.NurbsTrim)type);
}
public static
void QuadricCallback(int quad, Glu.Enums.QuadricCallback which, IntPtr CallBackFunc)
{
Delegates.gluQuadricCallback((int)quad, (Glu.Enums.QuadricCallback)which, (IntPtr)CallBackFunc);
}
public static
void QuadricCallback(int quad, Glu.Enums.QuadricCallback which, [In, Out] object CallBackFunc)
{
System.Runtime.InteropServices.GCHandle CallBackFunc_ptr = System.Runtime.InteropServices.GCHandle.Alloc(CallBackFunc, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
Delegates.gluQuadricCallback((int)quad, (Glu.Enums.QuadricCallback)which, (IntPtr)CallBackFunc_ptr.AddrOfPinnedObject());
}
finally
{
CallBackFunc_ptr.Free();
}
}
public static
void QuadricDrawStyle(int quad, Glu.Enums.QuadricDrawStyle draw)
{
Delegates.gluQuadricDrawStyle((int)quad, (Glu.Enums.QuadricDrawStyle)draw);
}
public static
void QuadricNormal(int quad, Glu.Enums.QuadricNormal normal)
{
Delegates.gluQuadricNormals((int)quad, (Glu.Enums.QuadricNormal)normal);
}
public static
void QuadricOrientation(int quad, Glu.Enums.QuadricOrientation orientation)
{
Delegates.gluQuadricOrientation((int)quad, (Glu.Enums.QuadricOrientation)orientation);
}
public static
void QuadricTexture(int quad, Glu.Enums.Boolean texture)
{
Delegates.gluQuadricTexture((int)quad, (Glu.Enums.Boolean)texture);
}
public static
Int32 ScaleImage(GL.Enums.PixelFormat format, Int32 wIn, Int32 hIn, GL.Enums.PixelType typeIn, IntPtr dataIn, Int32 wOut, Int32 hOut, GL.Enums.PixelType typeOut, [Out] IntPtr dataOut)
{
return Delegates.gluScaleImage((GL.Enums.PixelFormat)format, (Int32)wIn, (Int32)hIn, (GL.Enums.PixelType)typeIn, (IntPtr)dataIn, (Int32)wOut, (Int32)hOut, (GL.Enums.PixelType)typeOut, (IntPtr)dataOut);
}
public static
Int32 ScaleImage(GL.Enums.PixelFormat format, Int32 wIn, Int32 hIn, GL.Enums.PixelType typeIn, [In, Out] object dataIn, Int32 wOut, Int32 hOut, GL.Enums.PixelType typeOut, [In, Out] object dataOut)
{
System.Runtime.InteropServices.GCHandle dataIn_ptr = System.Runtime.InteropServices.GCHandle.Alloc(dataIn, System.Runtime.InteropServices.GCHandleType.Pinned);
System.Runtime.InteropServices.GCHandle dataOut_ptr = System.Runtime.InteropServices.GCHandle.Alloc(dataOut, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
return Delegates.gluScaleImage((GL.Enums.PixelFormat)format, (Int32)wIn, (Int32)hIn, (GL.Enums.PixelType)typeIn, (IntPtr)dataIn_ptr.AddrOfPinnedObject(), (Int32)wOut, (Int32)hOut, (GL.Enums.PixelType)typeOut, (IntPtr)dataOut_ptr.AddrOfPinnedObject());
}
finally
{
dataIn_ptr.Free();
dataOut_ptr.Free();
}
}
public static
void Sphere(int quad, double radius, Int32 slices, Int32 stacks)
{
Delegates.gluSphere((int)quad, (double)radius, (Int32)slices, (Int32)stacks);
}
public static
void TessBeginContour(int tess)
{
Delegates.gluTessBeginContour((int)tess);
}
public static
void TessBeginPolygon(int tess, IntPtr data)
{
Delegates.gluTessBeginPolygon((int)tess, (IntPtr)data);
}
public static
void TessBeginPolygon(int tess, [In, Out] object data)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
Delegates.gluTessBeginPolygon((int)tess, (IntPtr)data_ptr.AddrOfPinnedObject());
}
finally
{
data_ptr.Free();
}
}
public static
void TessCallback(int tess, Glu.Enums.TessCallback which, IntPtr CallBackFunc)
{
Delegates.gluTessCallback((int)tess, (Glu.Enums.TessCallback)which, (IntPtr)CallBackFunc);
}
public static
void TessCallback(int tess, Glu.Enums.TessCallback which, [In, Out] object CallBackFunc)
{
System.Runtime.InteropServices.GCHandle CallBackFunc_ptr = System.Runtime.InteropServices.GCHandle.Alloc(CallBackFunc, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
Delegates.gluTessCallback((int)tess, (Glu.Enums.TessCallback)which, (IntPtr)CallBackFunc_ptr.AddrOfPinnedObject());
}
finally
{
CallBackFunc_ptr.Free();
}
}
public static
void TessEndContour(int tess)
{
Delegates.gluTessEndContour((int)tess);
}
public static
void TessEndPolygon(int tess)
{
Delegates.gluTessEndPolygon((int)tess);
}
public static
void TessNormal(int tess, double valueX, double valueY, double valueZ)
{
Delegates.gluTessNormal((int)tess, (double)valueX, (double)valueY, (double)valueZ);
}
public static
void TessProperty(int tess, Glu.Enums.TessProperty which, double data)
{
Delegates.gluTessProperty((int)tess, (Glu.Enums.TessProperty)which, (double)data);
}
public static
void TessVertex(int tess, [Out] double[] location, IntPtr data)
{
unsafe
{
fixed (double* location_ptr = location)
{
Delegates.gluTessVertex((int)tess, (double*)location_ptr, (IntPtr)data);
}
}
}
[System.CLSCompliant(false)]
public static
unsafe void TessVertex(int tess, [Out] double* location, [In, Out] object data)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
Delegates.gluTessVertex((int)tess, (double*)location, (IntPtr)data_ptr.AddrOfPinnedObject());
}
finally
{
data_ptr.Free();
}
}
public static
void TessVertex(int tess, [Out] out double location, [In, Out] object data)
{
unsafe
{
fixed (double* location_ptr = &location)
{
System.Runtime.InteropServices.GCHandle data_ptr = System.Runtime.InteropServices.GCHandle.Alloc(data, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
Delegates.gluTessVertex((int)tess, (double*)location_ptr, (IntPtr)data_ptr.AddrOfPinnedObject());
location = *location_ptr;
}
finally
{
data_ptr.Free();
}
}
}
}
public static
Int32 UnProject(double winX, double winY, double winZ, double[] model, double[] proj, Int32[] view, double[] objX, double[] objY, double[] objZ)
{
unsafe
{
fixed (double* model_ptr = model)
fixed (double* proj_ptr = proj)
fixed (Int32* view_ptr = view)
fixed (double* objX_ptr = objX)
fixed (double* objY_ptr = objY)
fixed (double* objZ_ptr = objZ)
{
return Delegates.gluUnProject((double)winX, (double)winY, (double)winZ, (double*)model_ptr, (double*)proj_ptr, (Int32*)view_ptr, (double*)objX_ptr, (double*)objY_ptr, (double*)objZ_ptr);
}
}
}
public static
Int32 UnProject(double winX, double winY, double winZ, ref double model, ref double proj, ref Int32 view, ref double objX, ref double objY, ref double objZ)
{
unsafe
{
fixed (double* model_ptr = &model)
fixed (double* proj_ptr = &proj)
fixed (Int32* view_ptr = &view)
fixed (double* objX_ptr = &objX)
fixed (double* objY_ptr = &objY)
fixed (double* objZ_ptr = &objZ)
{
return Delegates.gluUnProject((double)winX, (double)winY, (double)winZ, (double*)model_ptr, (double*)proj_ptr, (Int32*)view_ptr, (double*)objX_ptr, (double*)objY_ptr, (double*)objZ_ptr);
}
}
}
[System.CLSCompliant(false)]
public static
unsafe Int32 UnProject(double winX, double winY, double winZ, double* model, double* proj, Int32* view, double* objX, double* objY, double* objZ)
{
return Delegates.gluUnProject((double)winX, (double)winY, (double)winZ, (double*)model, (double*)proj, (Int32*)view, (double*)objX, (double*)objY, (double*)objZ);
}
public static
Int32 UnProject4(double winX, double winY, double winZ, double clipW, double[] model, double[] proj, Int32[] view, double near, double far, double[] objX, double[] objY, double[] objZ, double[] objW)
{
unsafe
{
fixed (double* model_ptr = model)
fixed (double* proj_ptr = proj)
fixed (Int32* view_ptr = view)
fixed (double* objX_ptr = objX)
fixed (double* objY_ptr = objY)
fixed (double* objZ_ptr = objZ)
fixed (double* objW_ptr = objW)
{
return Delegates.gluUnProject4((double)winX, (double)winY, (double)winZ, (double)clipW, (double*)model_ptr, (double*)proj_ptr, (Int32*)view_ptr, (double)near, (double)far, (double*)objX_ptr, (double*)objY_ptr, (double*)objZ_ptr, (double*)objW_ptr);
}
}
}
public static
Int32 UnProject4(double winX, double winY, double winZ, double clipW, ref double model, ref double proj, ref Int32 view, double near, double far, ref double objX, ref double objY, ref double objZ, ref double objW)
{
unsafe
{
fixed (double* model_ptr = &model)
fixed (double* proj_ptr = &proj)
fixed (Int32* view_ptr = &view)
fixed (double* objX_ptr = &objX)
fixed (double* objY_ptr = &objY)
fixed (double* objZ_ptr = &objZ)
fixed (double* objW_ptr = &objW)
{
return Delegates.gluUnProject4((double)winX, (double)winY, (double)winZ, (double)clipW, (double*)model_ptr, (double*)proj_ptr, (Int32*)view_ptr, (double)near, (double)far, (double*)objX_ptr, (double*)objY_ptr, (double*)objZ_ptr, (double*)objW_ptr);
}
}
}
[System.CLSCompliant(false)]
public static
unsafe Int32 UnProject4(double winX, double winY, double winZ, double clipW, double* model, double* proj, Int32* view, double near, double far, double* objX, double* objY, double* objZ, double* objW)
{
return Delegates.gluUnProject4((double)winX, (double)winY, (double)winZ, (double)clipW, (double*)model, (double*)proj, (Int32*)view, (double)near, (double)far, (double*)objX, (double*)objY, (double*)objZ, (double*)objW);
}
public static partial class EXT
{
public static
void NurbsCallbackData(int nurb, IntPtr userData)
{
Delegates.gluNurbsCallbackDataEXT((int)nurb, (IntPtr)userData);
}
public static
void NurbsCallbackData(int nurb, [In, Out] object userData)
{
System.Runtime.InteropServices.GCHandle userData_ptr = System.Runtime.InteropServices.GCHandle.Alloc(userData, System.Runtime.InteropServices.GCHandleType.Pinned);
try
{
Delegates.gluNurbsCallbackDataEXT((int)nurb, (IntPtr)userData_ptr.AddrOfPinnedObject());
}
finally
{
userData_ptr.Free();
}
}
}
public static partial class SGI
{
public static
Int32 TexFilterFunc(GL.Enums.TextureTarget target, Glu.Enums.Filter4TypeSGIS filtertype, float[] parms, Int32 n, [Out] float[] weights)
{
unsafe
{
fixed (float* parms_ptr = parms)
fixed (float* weights_ptr = weights)
{
return Delegates.gluTexFilterFuncSGI((GL.Enums.TextureTarget)target, (Glu.Enums.Filter4TypeSGIS)filtertype, (float*)parms_ptr, (Int32)n, (float*)weights_ptr);
}
}
}
public static
Int32 TexFilterFunc(GL.Enums.TextureTarget target, Glu.Enums.Filter4TypeSGIS filtertype, ref float parms, Int32 n, [Out] out float weights)
{
unsafe
{
fixed (float* parms_ptr = &parms)
fixed (float* weights_ptr = &weights)
{
Int32 retval = Delegates.gluTexFilterFuncSGI((GL.Enums.TextureTarget)target, (Glu.Enums.Filter4TypeSGIS)filtertype, (float*)parms_ptr, (Int32)n, (float*)weights_ptr);
weights = *weights_ptr;
return retval;
}
}
}
[System.CLSCompliant(false)]
public static
unsafe Int32 TexFilterFunc(GL.Enums.TextureTarget target, Glu.Enums.Filter4TypeSGIS filtertype, float* parms, Int32 n, [Out] float* weights)
{
return Delegates.gluTexFilterFuncSGI((GL.Enums.TextureTarget)target, (Glu.Enums.Filter4TypeSGIS)filtertype, (float*)parms, (Int32)n, (float*)weights);
}
}
}
}