/// <summary> /// Sets the window status callback for the current window. /// </summary> /// <param name="func"> /// The new window status callback function. See /// <see cref="WindowStatusCallback" />. /// </param> /// <remarks> /// <para> /// <b>glutWindowStatusFunc</b> sets the window status callback for the current /// window. The window status callback for a window is called when the window /// status (visibility) of a window changes. The state callback parameter is one /// of <see cref="GLUT_HIDDEN" />, <see cref="GLUT_FULLY_RETAINED" />, /// <see cref="GLUT_PARTIALLY_RETAINED" />, or <see cref="GLUT_FULLY_COVERED" /> /// depending on the current window status of the window. <i>GLUT_HIDDEN</i> /// means that the window is either not shown (often meaning that the window is /// iconified). <i>GLUT_FULLY_RETAINED</i> means that the window is fully /// retained (no pixels belonging to the window are covered by other windows). /// <i>GLUT_PARTIALLY_RETAINED</i> means that the window is partially retained /// (some but not all pixels belonging to the window are covered by other /// windows). <i>GLUT_FULLY_COVERED</i> means the window is shown but no part of /// the window is visible, i.e., until the window's status changes, all further /// rendering to the window is discarded. /// </para> /// <para> /// GLUT considers a window visible if any pixel of the window is visible or any /// pixel of any descendant window is visible on the screen. /// </para> /// <para> /// GLUT applications are encouraged to disable rendering and/or animation when /// windows have a status of either <i>GLUT_HIDDEN</i> or /// <i>GLUT_FULLY_COVERED</i>. /// </para> /// <para> /// Passing <c>null</c> to <b>glutWindowStatusFunc</b> disables the generation of /// the window status callback. /// </para> /// <para> /// If the window status callback for a window is disabled and later re-enabled, /// the window status of the window is undefined; any change in window window /// status will be reported, that is if you disable a window status callback and /// re-enable the callback, you are guaranteed the next window status change will /// be reported. /// </para> /// <para> /// Setting the window status callback for a window disables the visibility /// callback set for the window (and vice versa). The visibility callback is set /// with <see cref="glutVisibilityFunc" />. <b>glutVisibilityFunc</b> is /// deprecated in favor of the more informative <b>glutWindowStatusFunc</b>. /// </para> /// </remarks> /// <seealso cref="WindowStatusCallback" /> /// <seealso cref="VisibilityCallback" /> /// <seealso cref="glutCreateWindow" /> /// <seealso cref="glutPopWindow" /> /// <seealso cref="glutVisibilityFunc" /> // GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state)); public static void glutWindowStatusFunc([In] WindowStatusCallback func) { windowStatusCallback = func; __glutWindowStatusFunc(windowStatusCallback); }
private static extern void __glutWindowStatusFunc(WindowStatusCallback func);