| Name |
| |
| SGIX_video_resize |
| |
| Name Strings |
| |
| GLX_SGIX_video_resize |
| |
| Version |
| |
| $Date: 1999/12/28 01:40:36 $ $Revision: 1.5 $ |
| |
| Number |
| |
| 83 |
| |
| Dependencies |
| |
| None |
| |
| Overview |
| |
| This extension provides a means for doing swap or frame synchronous |
| resizing/panning of the area |
| that is to be magnified (or passed through) to the output |
| video resolution. The purpose of this functionality is to provide a |
| means of allowing an application to draw into a smaller viewport to |
| reduce the time spent doing pixel fill. This reduced size viewport |
| is then magnified up to the video output resolution using the |
| SGIX_video_resize extension. This extension differs from SGIX_framezoom |
| (number 57) in that it is post framebuffer resizing. Over rendering |
| at swap rates and panning at frame rates is possible using frame synchronous |
| update instead of swap synchronous update used for the fill reduction case. |
| |
| Issues |
| |
| This extension currently only works on an InfiniteReality and later |
| high end machines. |
| |
| New Procedures and Functions |
| |
| int glXBindChannelToWindowSGIX( Display *display, |
| int screen, |
| int channel, |
| Window window ) |
| |
| int glXChannelRectSGIX( Display *display, |
| int screen, |
| int channel, |
| int x, |
| int y, |
| int w, |
| int h ) |
| |
| int glXQueryChannelRectSGIX( Display *display, |
| int screen, |
| int channel, |
| int *dx, |
| int *dy, |
| int *dw, |
| int *dh ) |
| |
| int glXQueryChannelDeltasSGIX( Display *display, |
| int screen, |
| int channel, |
| int *x, |
| int *y, |
| int *w, |
| int *h ) |
| |
| |
| int glXChannelRectSyncSGIX( Display *display, |
| int screen, |
| int channel, |
| GLenum synctype) |
| |
| |
| New Tokens |
| |
| Accepted by the <synctype> parameter of glXChannelRectSyncSGIX. |
| |
| GLX_SYNC_FRAME_SGIX 0x00000000 |
| GLX_SYNC_SWAP_SGIX 0x00000001 |
| |
| Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) |
| |
| None |
| |
| Additions to Chapter 3 of the 1.0 Specification (Rasterization) |
| |
| None |
| |
| Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations and |
| the Framebuffer) |
| |
| None |
| |
| Additions to Chapter 5 of the 1.0 Specification (Special Functions) |
| |
| None |
| |
| Additions to Chapter 6 of the 1.0 Specification (State and State Requests) |
| |
| None |
| |
| Additions to the GLX Specification |
| |
| glXBindChannelToWindowSGIX associates a channel with an X window id |
| so that when the Xwid is destroyed, the channel input area care |
| revert back to the area before the bind took place. The other reason |
| for this binding is that the bound channel only updates when a swap |
| takes place on the associated Xwid (assuming swap sync updates) |
| |
| glXChannelRectSGIX sets the input video rectangle that will take |
| effect the next swap on the bound did or next frame (based on |
| glXChannelRectSyncSGIX setting.) |
| |
| glXQueryChannelRectSGIX returns the actual input area that took |
| effect given any hardware constraints on input area placement/size. |
| |
| glXQueryChannelDeltasSGIX returns the resolution at which one can |
| place and size a video input area. |
| |
| glXChannelRectSyncSGIX configures the system to update video input |
| areas on complete swap buffers of bound xwids, or on frame boundries. |
| |
| Errors |
| |
| all SGIX_video_resize commands mentioned here return GLX_BAD_CONTEXT |
| if there is no current GLXContext. |
| |
| glXChannelRectSGIX returns GLX_BAD_CONTEXT if the current context is |
| not direct, or if there is no current context. |
| |
| glXChannelRectSGIX returns GLX_BAD_VALUE if the x,y,w,h rectangle specified |
| does not fit within the channel's rectangle that was current at the time of the |
| glXBindChannelToWindowSGIX call. |
| |
| glXBindChannelToWindowSGIX returns GLX_BAD_VALUE if window passed to it |
| is invalid. |
| |
| all SGIX_video_resize commands mentioned here return GLX_BAD_VALUE |
| if the specified channel is invalid or inactive. |
| |
| New State |
| |
| Get Value Get Command Type Initial Value |
| --------- ----------- ---- ------------- |
| [deltas] glXQueryChannelDeltasSGIX Z+ dx=4,dy=1,dw=4,dh=1 |
| [resize rect] glXQueryChannelRectSGIX Z+ current pan/zoom rect |
| |
| |
| New Implementation Dependent State |
| |
| Get Value Get Command Type Initial Value |
| --------- ----------- ---- ------------- |
| [bound] B false |