Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1549 | Anzahl registrierter User: 1833 | Besucher online: 1282
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Deaktivieren von VSync unter OpenGL


Autor: Vertexwahn
Sprache: C++
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 8628
  
Kick it on dotnet-kicks.de  

Beschreibung:

VSync ist die Abkürzung Vertical synchronization. Zu deutsch "Vertikale Synchronisierung" und verhindert Darstellungsfehler im Bildaufbau. Das folgende Code Fragment zeigt wie man unter OpenGL VSync an- bzw. abschalten kann.

Quellen:
1. VSync - Wikipedia: http://de.wikipedia.org/wiki/VSync

2. 60, 70 or 75 fps? See the solution ! (Source code to copy and paste.) - Gamedev.net: http://www.gamedev.net/community/forums/topic.asp?topic_id=425122


Abgelegt unter: OpenGL, VSync.



C++
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//Download wglext.h from http://oss.sgi.com/projects/ogl-sample/sdk.html
#include <gl\wglext.h>

PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = NULL;
PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT = NULL;


//from NeHe Lesson 45
bool IsExtensionSupported( char* szTargetExtension )
{
    const unsigned char *pszExtensions = NULL;
    const unsigned char *pszStart;
    unsigned char *pszWhere, *pszTerminator;

    // Extension names should not have spaces
    pszWhere = (unsigned char *) strchr( szTargetExtension, ' ' );
    if( pszWhere || *szTargetExtension == '\0' )
        return false;

    // Get Extensions String
    pszExtensions = glGetString( GL_EXTENSIONS );

    // Search The Extensions String For An Exact Copy
    pszStart = pszExtensions;
    for(;;)
    {
        pszWhere = (unsigned char *) strstr( (const char *) pszStart, szTargetExtension );
        if( !pszWhere )
            break;
        pszTerminator = pszWhere + strlen( szTargetExtension );
        if( pszWhere == pszStart || *( pszWhere - 1 ) == ' ' )
            if( *pszTerminator == ' ' || *pszTerminator == '\0' )
                return true;
        pszStart = pszTerminator;
    }
    return false;
}

bool InitVSync()
{
   if (IsExtensionSupported("WGL_EXT_swap_control"))
   {
      wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)
          wglGetProcAddress("wglSwapIntervalEXT");
      wglGetSwapIntervalEXT = (PFNWGLGETSWAPINTERVALEXTPROC)
          wglGetProcAddress("wglGetSwapIntervalEXT");
      return true;
   }
   return false;// WGL_EXT_swap_control not supported
}
bool SetVSync(bool VSync)
{
    if(!wglSwapIntervalEXT) return false;
    wglSwapIntervalEXT(VSync);
    return true;
}
bool GetVSync(bool* VSync)
{
    if(!wglGetSwapIntervalEXT) return false;//VSynce value is not valid...
    *VSync = wglGetSwapIntervalEXT();
    return true;
}

Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



Diese Snippets könnten für Sie interessant sein:

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.