D
DerMitDemDer
Hallo Ihr,
ich bin neu im Forum und hätte gleich mal eine Frage zur Initialisierung von OpenGL mit SDL. Ich habe folgenden Code aus mehren Tutorials zusammengeschrieben und der funktioniert auch so weit:
Nun aber zu meinen Fragen (die ich mir auch leider durch googlen nicht beantworten konnte, mir fehlen die Suchbegriffe
):
1. Was heißt SDL_HWPALETTE (bzw. was bedeutet der exklusive Zugriff auf die Hardwarepalette)?
2. Mit SDL_GL_SetAttribute(SDL_GL_[Farbe]_SIZE, [Größe]) setzte ich für OpenGL die Größe des Farbbuffer (wenn ich das richtig verstanden habe). Muss ich diese Werte bei der Erstellung des Fensters mit SDL (SDL_SetVideoMode([Breite], [Höhe], [Farbtiefe], [Parameter])) im Bezug auf die Farbtiefe beachten bzw. wann gilt welcher Wert?
3. Habt ihre noch irgendwelche Tipps & Ratschläge was noch bei der Initialisierung des Fensters beachtet werden sollte?
Ich hoffe, dass ihr mir helfen könnt,
MfG, DerMitDemDer.
ich bin neu im Forum und hätte gleich mal eine Frage zur Initialisierung von OpenGL mit SDL. Ich habe folgenden Code aus mehren Tutorials zusammengeschrieben und der funktioniert auch so weit:
Code:
bool InitializeWindow(string Caption, unsigned short Width, unsigned short Height, unsigned short Depth)
{
// SDL initialisieren
if (!SDL_WasInit(SDL_INIT_VIDEO))
{
if (SDL_Init(SDL_INIT_VIDEO) != 0)
{
LogError("Could not initialize SDL!");
return(false);
}
}
// Flags für das Fenster setzen
unsigned short VideoFlags = SDL_OPENGL | SDL_HWPALETTE;
const SDL_VideoInfo* VideoInfo = SDL_GetVideoInfo();
if (VideoInfo = NULL)
{
LogError("Could not query video info!");
return(false);
}
else
{
// Kann die Surface in den Grafikspeicher?
if (VideoInfo->hw_available != 0)
VideoFlags |= SDL_HWSURFACE;
else
VideoFlags |= SDL_SWSURFACE;
// Hardware-Blitting unterstützt?
if (VideoInfo->blit_hw != 0)
VideoFlags |= SDL_HWACCEL;
}
// OpenGL-Attribute setzen
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
// Fenstertitel setzen und Fenster erstellen
SDL_WM_SetCaption(Caption.c_str(), NULL);
if (SDL_SetVideoMode(Width, Height, Depth, SDL_OPENGL) == NULL)
{
LogError("Could not create window!");
return(false);
}
// OpenGL initialisieren
glClearColor(0.0, 0.0, 0.0, 1.0);
glClearDepth(0.0);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
// Erfolgreich
return(true);
}

1. Was heißt SDL_HWPALETTE (bzw. was bedeutet der exklusive Zugriff auf die Hardwarepalette)?
2. Mit SDL_GL_SetAttribute(SDL_GL_[Farbe]_SIZE, [Größe]) setzte ich für OpenGL die Größe des Farbbuffer (wenn ich das richtig verstanden habe). Muss ich diese Werte bei der Erstellung des Fensters mit SDL (SDL_SetVideoMode([Breite], [Höhe], [Farbtiefe], [Parameter])) im Bezug auf die Farbtiefe beachten bzw. wann gilt welcher Wert?
3. Habt ihre noch irgendwelche Tipps & Ratschläge was noch bei der Initialisierung des Fensters beachtet werden sollte?
Ich hoffe, dass ihr mir helfen könnt,
MfG, DerMitDemDer.