mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-29 21:46:40 +00:00
Xephyr: Make glxinfo work on the ATI R200 free driver.
* hw/kdrive/ephyr/ephyr.c: (EphyrDuplicateVisual): when duplicating the visual, copy the color component masks and the class from the hostX (EphyrMirrorHostVisuals): don't mix blue and green mask. * hw/kdrive/ephyr/ephyrdri.c: add more logs. (ephyrDRICreateDrawable): actually implement this. for the moment it creates a DRI drawable for the hostX window, no matter what drawable this call was issued for. (ephyrDRIGetDrawableInfo): actually implemented this. for the moment the drawable info queried for its attrs is the Xephyr main main window. * hw/kdrive/ephyr/ephyrdriext.c: (ProcXF86DRIGetDrawableInfo): properly hook this dispatch function to the ephyrDRIGetDrawableInfo() function. * hw/kdrive/ephyr/ephyrglxext.c: add a bunch of GLX implementation hooks here. Hijack some of the xserver GLX hooks with them. Still need to properly support byteswapped clients though. * hw/kdrive/ephyr/ephyrhostglx.c,h: actually implemented the protocol level forwarding functions used by the GLX entr points in ephyrglxext.c. Here as well, there are a bunch of them, but we are far from having implemented all the GLX calls. * hw/kdrive/ephyr/hostx.c,h: (hostx_get_window_attributes): added this new entry point (hostx_allocate_resource_id_peer): added this to keep track of resource IDs peers: one member of the peer is in Xephyr, the other is in host X. (hostx_get_resource_id_peer): ditto.
This commit is contained in:
parent
8c78df0ea3
commit
4dd4be99df
9 changed files with 801 additions and 40 deletions
|
|
@ -28,9 +28,16 @@
|
|||
#ifndef __EPHYRHOSTGLX_H__
|
||||
#define __EPHYRHOSTGLX_H__
|
||||
|
||||
enum EphyrHostGLXGetStringOps {
|
||||
EPHYR_HOST_GLX_UNDEF,
|
||||
EPHYR_HOST_GLX_QueryServerString,
|
||||
EPHYR_HOST_GLX_GetString,
|
||||
};
|
||||
|
||||
Bool ephyrHostGLXQueryVersion (int *a_maj, int *a_min) ;
|
||||
Bool ephyrHostGLXGetStringFromServer (int a_screen_number,
|
||||
int a_string_name,
|
||||
enum EphyrHostGLXGetStringOps a_op,
|
||||
char **a_string) ;
|
||||
Bool ephyrHostGLXGetVisualConfigs (int a_screen,
|
||||
int32_t *a_num_visuals,
|
||||
|
|
@ -46,6 +53,24 @@ ephyrHostGLXVendorPrivGetFBConfigsSGIX (int a_screen,
|
|||
Bool ephyrHostGLXGetMajorOpcode (int32_t *a_opcode) ;
|
||||
Bool ephyrHostGLXSendClientInfo (int32_t a_major, int32_t a_minor,
|
||||
const char* a_extension_list) ;
|
||||
Bool ephyrHostGLXCreateContext (int a_screen,
|
||||
int a_visual_id,
|
||||
int a_context_id,
|
||||
int a_shared_list_ctx_id,
|
||||
Bool a_direct) ;
|
||||
|
||||
Bool ephyrHostDestroyContext (int a_ctxt_id) ;
|
||||
|
||||
Bool ephyrHostGLXMakeCurrent (int a_drawable, int a_glx_ctxt_id,
|
||||
int a_olg_ctxt_tag, int *a_ctxt_tag) ;
|
||||
|
||||
Bool ephyrHostGetIntegerValue (int a_current_context_tag,
|
||||
int a_int,
|
||||
int *a_val) ;
|
||||
|
||||
Bool ephyrHostIsContextDirect (int a_ctxt_id,
|
||||
int *a_is_direct) ;
|
||||
|
||||
|
||||
#endif /*__EPHYRHOSTGLX_H__*/
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue