17b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulName 27b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 37b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul MESA_copy_sub_buffer 47b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 57b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulName Strings 67b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 77b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul GLX_MESA_copy_sub_buffer 87b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 97b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulContact 107b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 11d3b09fe29b112ddf114d14849e917befafd8387aBrian Paul Brian Paul (brian.paul 'at' tungstengraphics.com) 127b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 137b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulStatus 147b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 157b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul Shipping since Mesa 2.6 in February, 1998. 167b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 177b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulVersion 187b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 191f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick Last Modified Date: 12 January 2009 207b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 217b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulNumber 227b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 23dd18a4f335984081ccf5c2145b7983168ab3e074Brian Paul 215 247b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 257b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulDependencies 267b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 277b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul OpenGL 1.0 or later is required. 287b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul GLX 1.0 or later is required. 297b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 307b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulOverview 317b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 327b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul The glxCopySubBufferMESA() function copies a rectangular region 337b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul of the back color buffer to the front color buffer. This can be 347b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul used to quickly repaint 3D windows in response to expose events 357b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul when the back color buffer cannot be damaged by other windows. 367b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 377b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulIP Status 387b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 397b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul Open-source; freely implementable. 407b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 417b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulIssues 427b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 437b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul None. 447b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 457b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulNew Procedures and Functions 467b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 477b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, 48dd18a4f335984081ccf5c2145b7983168ab3e074Brian Paul int x, int y, int width, int height ); 497b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 507b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulNew Tokens 517b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 527b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul None. 537b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 547b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulAdditions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) 557b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 567b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul Add to section 3.3.10 Double Buffering: 577b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 587b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul The function 597b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 60dd18a4f335984081ccf5c2145b7983168ab3e074Brian Paul void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, 61dd18a4f335984081ccf5c2145b7983168ab3e074Brian Paul int x, int y, int width, int height ); 627b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 637b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul may be used to copy a rectangular region of the back color buffer to 647b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul the front color buffer. This can be used to quickly repaint 3D windows 657b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul in response to expose events when the back color buffer cannot be 667b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul damaged by other windows. 677b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 687b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul <x> and <y> indicates the lower-left corner of the region to copy and 697b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul <width> and <height> indicate the size in pixels. Coordinate (0,0) 707b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul corresponds to the lower-left pixel of the window, like glReadPixels. 71dd18a4f335984081ccf5c2145b7983168ab3e074Brian Paul 721f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick If dpy and drawable are the display and drawable for the calling 731f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick thread's current context, glXCopySubBufferMESA performs an 741f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick implicit glFlush before it returns. Subsequent OpenGL commands 751f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick may be issued immediately after calling glXCopySubBufferMESA, but 761f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick are not executed until the copy is completed. 771f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick 787b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulGLX Protocol 797b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 807b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul None at this time. The extension is implemented in terms of ordinary 817b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul Xlib protocol inside of Mesa. 827b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 837b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulErrors 847b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 857b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul None. 867b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 877b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulNew State 887b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 897b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul None. 907b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 917b2c0f9148eb7eb30326173899ed366fcef8d437Brian PaulRevision History 927b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 931f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick 12 January 2009 Ian Romanick - Added language about implicit flush 941f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick and command completion. 951f47388dfebf15f610993f046e1f945024c8fc3cIan Romanick 8 June 2000 Brian Paul - initial specification 967b2c0f9148eb7eb30326173899ed366fcef8d437Brian Paul 97