IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

[PBuffer] Détermination de la taille maximale


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut [PBuffer] Détermination de la taille maximale
    Bonjour,

    j'ai un petit problème avec les Pbuffers sur certains chips graphiques.
    En l'occurence sur un Intel 915G: au delà d'une taille de 800x600 a peu près, impossible de créer un pBuffer.

    J'essaie alors de palier au probleme en précisant de creer un buffer de la taille maximale possible, avec WGL_PBUFFER_LARGEST_ARB, mais ca ne marche pas... ca n'a l'air d'avoir aucun effet.

    Donc j'aimerais essayer d'obtenir les dimensions maximales possible en utilisant wglGetPixelFormatAttribivEXT avec WGL_MAX_PBUFFER_WIDTH_ARB par exemple, mais impossible de trouver le moindre exemple là dessus.

    Pour résumer:
    1. Est-il normal que WGL_PBUFFER_LARGEST_ARB n'ait aucun effet? Je fais qq chose de travers?
    2. QQ'un aurait-il un exemple d'uutilisation de wglGetPixelFormatAttribivEXT ?

    Je poste monde code de création, merci d'avance!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    // pBuffer attributes
    	int pf_attr[] =
    	{
    		WGL_PBUFFER_LARGEST_ARB, 1,			// Get the largest available pBuffer (size will be limited if ressources
    		0									// are insufficient but will never exeed the specified width & height)
    	};
     
    	wglGetPixelFormatAttribivEXT( WGL_MAX_PBUFFER_WIDTH_ARB );
     
    	m_hpBuffer = wglCreatePbufferARB(m_oldhDC, pixelFormat, m_width, m_height, pf_attr);
     
    	// Retrieve pBuffer dimensions, in case they differ from the requested ones
    	int pWidth, pHeight;	
    	wglQueryPbufferARB(m_hpBuffer, WGL_PBUFFER_WIDTH_ARB, &pWidth);
    	wglQueryPbufferARB(m_hpBuffer, WGL_PBUFFER_HEIGHT_ARB, &pHeight);
     
    	// Quit if the pBuffer creation failed
    	if(!m_hpBuffer)
    	{
    		MessageBox(NULL, _T("Could not create the p-buffer"), _T("ERROR"), MB_OK | MB_ICONEXCLAMATION);
    		return FALSE;
    	}
     
    	// Copy the new size if necessary)
    	if((m_width != pWidth) || (m_height != pHeight))
    	{
    		m_width	 = pWidth;
    		m_height = pHeight;
    		MessageBox(NULL, _T("p-buffer size-limited due to insufficient hardware ressources. Consider upgrading your graphic chipset"), _T("ERROR"), MB_OK | MB_ICONEXCLAMATION);
    	}

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Re,

    j'ai finalement trouvé quelques éléments de réponse:
    1. En lisant ceci http://damien.porquet.free.fr/msi/gl...f_two.txt.html je suis tombé sur
    The WGL_ARB_render_texture extension allows creating a pbuffer
    with the WGL_PBUFFER_LARGEST_ARB attribute. If this extension is
    present, should this attribute potentially return a NPOT pbuffer?
    => si je comprends bien pas possible d'utiliser WGL_PBUFFER_LARGEST_ARB sans l'extension GL_ARB_texture_non_power_of_two

    2. Ca y est j'ai finalement trouvé un exemple, ca marche comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    const int Attribs[ 3 ] = 
        {
    		WGL_MAX_PBUFFER_PIXELS_ARB,
    		WGL_MAX_PBUFFER_WIDTH_ARB,
    		WGL_MAX_PBUFFER_HEIGHT_ARB
    	};
    	int Values[ 3 ];
     
        wglGetPixelFormatAttribivARB( m_DC, pixelFormat, 0, 3, Attribs, Values );
    Voilà avec tout ca j'arrive à creer un pBuffer correct, en esperant que l'info serve à qq'un d'autre...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR9][VS.NET]Taille maximale d'un champ paramètre
    Par San Soussy dans le forum SDK
    Réponses: 1
    Dernier message: 02/09/2005, 09h03
  2. Taille maximale d'un package
    Par haugoyard dans le forum Oracle
    Réponses: 2
    Dernier message: 09/08/2005, 16h27
  3. taille maximale d'une base de donnée paradox
    Par Anonymous dans le forum Paradox
    Réponses: 5
    Dernier message: 14/02/2004, 17h39
  4. Réponses: 9
    Dernier message: 29/07/2003, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo