/* ** Font function */ // TODO: face parameter should be of type StyleParameter in QuickDraw. [DllImport(agl)] static extern byte aglUseFont(AGLContext ctx, int fontID, int face, int size, int first, int count, int @base);
[DllImport(agl)] static extern byte aglTexImagePBuffer (AGLContext ctx, AGLPbuffer pbuffer, int source);
[DllImport(agl)] internal static extern byte aglDisable(AGLContext ctx, ParameterNames pname);
internal static extern byte aglSetInteger(AGLContext ctx, ParameterNames pname, int []@params);
static extern byte aglGetCGLContext(AGLContext ctx, void** cgl_ctx);
[DllImport(agl)] static extern int aglGetVirtualScreen(AGLContext ctx);
internal static extern bool aglGetInteger(AGLContext ctx, ParameterNames pname, out int param);
/* ** Current state functions */ #region --- aglSetCurrentContext --- [DllImport(agl, EntryPoint = "aglSetCurrentContext")] static extern byte _aglSetCurrentContext(AGLContext ctx);
internal static extern bool aglDisable(AGLContext ctx, ParameterNames pname);
static extern bool aglIsEnabled(AGLContext ctx, GLenum pname);
static extern byte aglGetCGLContext(AGLContext ctx, void **cgl_ctx);
static extern byte aglGetInteger(AGLContext ctx, GLenum pname, int * @params);
internal static extern byte aglSetInteger(AGLContext ctx, ParameterNames pname, ref int @params);
[DllImport(agl)] static extern byte aglGetPBuffer (AGLContext ctx, AGLPbuffer *pbuffer, int *face, int *level, int *screen) ;
/* ** Context functions */ [DllImport(agl)] internal static extern AGLContext aglCreateContext(AGLPixelFormat pix, AGLContext share);
[DllImport(agl, EntryPoint = "aglDestroyContext")] static extern byte _aglDestroyContext(AGLContext ctx);
[DllImport(agl,EntryPoint="aglDestroyContext")] static extern byte _aglDestroyContext(AGLContext ctx);
static extern byte _aglSetFullScreen(AGLContext ctx, int width, int height, int freq, int device);
internal static bool aglDestroyContext(AGLContext context) { return (_aglDestroyContext(context) != 0) ? true : false; }
/* ** Virtual screen functions */ [DllImport(agl)] static extern byte aglSetVirtualScreen(AGLContext ctx, int screen);
[DllImport(agl)] static extern byte aglCopyContext(AGLContext src, AGLContext dst, uint mask);
/* ** Swap functions */ [DllImport(agl)] internal static extern void aglSwapBuffers(AGLContext ctx);
[DllImport(agl)] internal static extern byte aglUpdateContext(AGLContext ctx);
[DllImport(agl)] static extern byte aglIsEnabled(AGLContext ctx, GLenum pname);
/* ** Current state functions */ #region --- aglSetCurrentContext --- [DllImport(agl,EntryPoint="aglSetCurrentContext")] static extern byte _aglSetCurrentContext(AGLContext ctx);
static extern byte aglGetInteger(AGLContext ctx, GLenum pname, int* @params);
static extern byte _aglSetDrawable(AGLContext ctx, AGLDrawable draw);
/* ** Surface texture function */ [DllImport(agl)] static extern void aglSurfaceTexture (AGLContext context, GLenum target, GLenum internalformat, AGLContext surfacecontext) ;
internal static void aglSetDrawable(AGLContext ctx, AGLDrawable draw) { byte retval = _aglSetDrawable(ctx, draw); if (retval == 0) { AglError err = GetError(); throw new MacOSException(err, ErrorString(err)); } }
/* ** Pbuffer Drawable Functions */ [DllImport(agl)] static extern byte aglSetPBuffer (AGLContext ctx, AGLPbuffer pbuffer, int face, int level, int screen) ;
[DllImport(agl)] static extern byte aglSetOffScreen(AGLContext ctx, int width, int height, int rowbytes, IntPtr baseaddr);
/* ** CGL functions */ [DllImport(agl)] static extern byte aglGetCGLContext(AGLContext ctx, void **cgl_ctx) ;
[DllImport(agl)] static extern AGLDrawable aglGetDrawable(AGLContext ctx);
internal static void aglSetFullScreen(AGLContext ctx, int width, int height, int freq, int device) { byte retval = _aglSetFullScreen(ctx, width, height, freq, device); if (retval == 0) { AglError err = GetError(); Debug.Print("AGL Error: {0}", err); Debug.Indent(); Debug.Print(ErrorString(err)); Debug.Unindent(); throw new MacOSException(err, ErrorString(err)); } }
internal static extern byte aglEnable(AGLContext ctx, ParameterNames pname);