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?

InformationsquelleAutor ste3e | 2012-04-15
Schreibe einen Kommentar