Re: DIGITAL_MEDIA_PBUFFER and Performer

New Message Reply Date view Thread view Subject view Author view

Software Development & Support. (brainval++at++ehome.encis.es)
Mon, 01 Feb 1999 20:53:24 -0500


Hello All,

SUBJET: Performer + PBUFFER + Dmedia Buffer

We still fighting with Performer, to use a PBUFFER window, with the
DIGITAL_MEDIA_PBUFFER attribute.

The PBUFFER is created with:

  static int PBufferAttribs [] = {
        GLX_DIGITAL_MEDIA_PBUFFER_SGIX, True,
        GLX_PRESERVED_CONTENTS_SGIX, True,
        (int) None
        };

static int FBAttrs[] = {
    GLX_DRAWABLE_TYPE_SGIX, GLX_WINDOW_BIT_SGIX | GLX_PBUFFER_BIT_SGIX,
    GLX_RENDER_TYPE_SGIX,
    GLX_RGBA_BIT_SGIX,
    PFFB_RED_SIZE, 5,
    PFFB_BLUE_SIZE, 5,
    PFFB_GREEN_SIZE, 5,
    PFFB_ALPHA_SIZE, 1,
    GLX_DEPTH_SIZE, 24,
    None,
};

static void OpenPbuf(pfPipeWindow *pw)
{
    pfPipe *p;
    pfWSDrawable gxw;
    pfWSConnection dsp;
    int xs=0, ys=0, wxs, wys, num, screen, ret;
    Window pbuf;

    GLXFBConfigSGIX *fbc;
    XVisualInfo * vis;

    dsp = pfGetCurWSConnection();
    screen = pfGetPWinScreen(pw);

    fbc = glXChooseFBConfigSGIX(dsp, 0, FBAttrs, &num);
    vis = glXGetVisualFromFBConfigSGIX(dsp, *fbc);

    printf("Num matching FBConfigs on display 0x%p=%s screen %d is %d
VisID:%X",
        dsp, XDisplayString(dsp), screen, num, vis->visualid);

   pfPWinFBConfig(pw, *fbc);

    gxw = glXCreateGLXPbufferSGIX( dsp, * fbc, xs, ys, PBufferAttribs);
    pfPWinWSDrawable(pw, dsp, gxw);
    }

CASE 1:
If I do not create the PBUFFER then Performer opens the Pbuffer by
himself,
but the Pbuffer can not be associated to a Digital media Buffer,
because it has not the correct properties.

pbufAssociate(display,
            (GLXPbufferSGIX ) getPbuffer(), getDmparams(),getDmbuffer() )
;

RESULT:
X Error of failed request: BadDrawable (invalid Pixmap or Window
parameter)
  Major opcode of failed request: 141 (GLX)
  Minor opcode of failed request: 16 (X_GLXVendorPrivate)
  Resource id in failed request: 0x0
  Serial number of failed request: 0
  Current serial number in output stream: 24

CASE 2:
If I Try to set these properties, create the pbuffer by myself and then
use it with
pfPWinWSDrawable then I get as result:

RESULT:
> PF Notice: Num matching FBConfigs on display
> 0x100212f8=:0.0 screen 0 is 2
> X Error of failed request: BadAlloc (insufficient resources for
> operation)
> Major opcode of failed request: 141 (GLX)
> Minor opcode of failed request: 5 (X_GLXMakeCurrent)
> Serial number of failed request: 0
> Current serial number in output stream: 48
>

What am I doing wrong ?

Thanks in advance to any help.

Hector Viguer.

--
Brainstorm Multimedia.
Software  development.

e_mail: brainval++at++ehome.encis.es

Hello All, 

SUBJET: Performer + PBUFFER + Dmedia Buffer
 

We still fighting with Performer, to use a PBUFFER window, with the
DIGITAL_MEDIA_PBUFFER attribute.
 
 
 

The PBUFFER is created with:

  static int PBufferAttribs [] = {
        GLX_DIGITAL_MEDIA_PBUFFER_SGIX, True,
        GLX_PRESERVED_CONTENTS_SGIX, True,
        (int) None
        };

static int FBAttrs[] = {
    GLX_DRAWABLE_TYPE_SGIX, GLX_WINDOW_BIT_SGIX | GLX_PBUFFER_BIT_SGIX,
    GLX_RENDER_TYPE_SGIX,
    GLX_RGBA_BIT_SGIX,
    PFFB_RED_SIZE, 5,
    PFFB_BLUE_SIZE, 5,
    PFFB_GREEN_SIZE, 5,
    PFFB_ALPHA_SIZE, 1,
    GLX_DEPTH_SIZE, 24,
    None,
};

static void OpenPbuf(pfPipeWindow *pw)
{
    pfPipe *p;
    pfWSDrawable gxw;
    pfWSConnection dsp;
    int xs=0, ys=0, wxs, wys, num, screen, ret;
    Window pbuf;

    GLXFBConfigSGIX *fbc;
    XVisualInfo * vis;

    dsp = pfGetCurWSConnection();
    screen = pfGetPWinScreen(pw);
 
    fbc = glXChooseFBConfigSGIX(dsp, 0, FBAttrs, &num);
    vis = glXGetVisualFromFBConfigSGIX(dsp, *fbc);

    printf("Num matching FBConfigs on display 0x%p=%s screen %d is %d VisID:%X",
        dsp, XDisplayString(dsp), screen, num, vis->visualid);

   pfPWinFBConfig(pw, *fbc);

    gxw = glXCreateGLXPbufferSGIX( dsp, * fbc, xs, ys, PBufferAttribs);
    pfPWinWSDrawable(pw, dsp, gxw);
    }
 

CASE 1:
If I do not create the PBUFFER then Performer opens the Pbuffer by himself,
but the Pbuffer can not be associated to a Digital media Buffer,
because it has not the correct properties.

pbufAssociate(display,
            (GLXPbufferSGIX ) getPbuffer(), getDmparams(),getDmbuffer() ) ;

RESULT:
X Error of failed request:  BadDrawable (invalid Pixmap or Window parameter)
  Major opcode of failed request:  141 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Resource id in failed request:  0x0
  Serial number of failed request:  0
  Current serial number in output stream:  24
 

CASE 2:
If  I Try to set these properties, create the pbuffer by myself and then use it with
pfPWinWSDrawable then I get as result:
 

RESULT:
> PF Notice:                     Num matching FBConfigs on display
> 0x100212f8=:0.0 screen 0 is 2
> X Error of failed request:  BadAlloc (insufficient resources for
> operation)
>   Major opcode of failed request:  141 (GLX)
>   Minor opcode of failed request:  5 (X_GLXMakeCurrent)
>   Serial number of failed request:  0
>   Current serial number in output stream:  48
>
 
 
 

What am I doing wrong ?
 
 

Thanks in advance to any help.
 
 
 
 

Hector Viguer.

-- 
Brainstorm Multimedia.  
Software  development.

e_mail: brainval++at++ehome.encis.es
 

New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Feb 01 1999 - 11:47:14 PST

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.