blob: faa2754752ac4d597409e46ab18e59875bb0e767 [file] [log] [blame]
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