warum bekomme ich: Fehler: undefinierter Bezeichner SDL_SetVideoMode beim kompilieren von SDL2 auf DMD2
Ich finde keine Beispiele von code ausgeführt SDL2, und wenn ich versuche zu kompilieren, den folgenden code auf DMD2 mit Verlassenen SDL2 ich bekomme den oben genannten Fehler. Gibt es eine neue Reihe von Verfahren für die Initialisierung SDL2?
Der code ist:
import std.stdio;
import derelict.sdl2.sdl;
import derelict.sdl2.types;
import derelict.opengl3.gl3;
private import EventHub;
pragma(lib, "DerelictUtil.lib");
pragma(lib, "DerelictGL3.lib");
pragma(lib, "derelictSDL2.lib");
bool running=true;
SDL_Surface *screen;
class App{
private EventHub ehub;
private bool virgin=true;
private int w=1024, h=768, bpp=24;
private int flags=SDL_GL_DOUBLEBUFFER;//| SDL_FULLSCREEN
public void init(){
initSDL();
}
private bool initSDL(){
if(SDL_Init(SDL_INIT_VIDEO)<0){
SDL_Quit();
writeln("Error initializing SDL_Video");
writeln(SDL_GetError());
return false;
}
writeln("fred");
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, 24);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 2);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
screen=SDL_SetVideoMode(w, h, bpp, flags);
return true;
}
}
void main(){
try{
DerelictGL3.load();
}catch(Exception e){
writeln("Error loading GL3");
}
try{
DerelictSDL2.load();
}catch(Exception e){
writeln("Error loading SDL");
}
App a=new App();
a.init();
}
Das Programm druckt "fred", wenn der Bildschirm=SDL_SetVideoMode(w, h, bpp, flags); - Anweisung ist auskommentiert, also SDL ist das laden und initialisieren OK. Hat jemand irgendwelche Hinweise?
Du musst angemeldet sein, um einen Kommentar abzugeben.
SDL 1.3 (veröffentlicht als version 2 wenn Sie fertig sind) keinen wirklichen SDL_SetVideoMode-Funktion. (Die Dokumentation erwähnt ein Kompatibilitäts-stub, aber es ist wahrscheinlich fehlen, Verlassen.) Finden Sie die migration guide für mehr details.