2017-06-02 2 views
1
#include <iostream> 
#include <SDL.h> 
using namespace std; 

int main(int argc, char* argv[]){ 

    const int SCREEN_WIDTH = 800; 
    const int SCREEN_HEIGHT = 600; 
    if(SDL_Init(SDL_INIT_VIDEO) < 0){ 
     cout << "SDL init failed." << endl; 
     return 1; 
    } 

    SDL_Window *window = SDL_CreateWindow("Particle Fire Explosion", 
      SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); 

    if(window == NULL){ 
     SDL_Quit(); 
     return 2; 
    } 

    SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC); 
    SDL_Texture *texture = SDL_CreateTexture(renderer,SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STATIC, SCREEN_WIDTH, SCREEN_HEIGHT); 

    if (renderer == NULL){ 
     cout << "Could not create renderer" << endl; 
     SDL_DestroyWindow(window); 
     SDL_Quit(); 
     return 3; 
    } 

    if(texture == NULL){ 
     cout << "Could not create texture" << endl; 
     SDL_DestroyRenderer(renderer); 
     SDL_DestroyWindow(window); 
     SDL_Quit(); 
     return 4; 
    } 

    Uint32 *buffer = new Uint32[SCREEN_WIDTH*SCREEN_HEIGHT]; 

    SDL_UpdateTexture(texture, NULL, buffer, SCREEN_WIDTH*sizeof(Uint32)); 
    SDL_RenderClear(renderer); 
    SDL_RenderCopy(renderer, texture, NULL, NULL); 
    SDL_RenderPresent(renderer); 

    bool quit = false; 

    SDL_Event event; 

    while(!quit){ 
     //Update particles 
     // Draw particles 
     // Check for messages/events 

     while(SDL_PollEvent(&event)){ 
      if(event.type == SDL_QUIT){ 
       quit = true; 
      } 
     } 
    } 

    delete [] buffer; 
    SDL_DestroyRenderer(renderer); 
    SDL_DestroyTexture(texture); 
    SDL_DestroyWindow(window); 
    SDL_Quit(); 

    return 0; 
} 

Le code compile mais je continue à obtenir une valeur de sortie de -1,073,741,515 au lieu d'une valeur de sortie de 0. Et la fenêtre SDL n'apparaît pas. Pourrait-il être mon IDE ou quelque chose ne va pas avec mon code?fenêtre SDL ne se pose pas dans Eclipse

Les sorties de la console >terminated< (exit value -1,073,741,515).

+0

Votre code fonctionne parfaitement avec Visual Studio. Cela implique que quelque chose ne va pas dans les propriétés du projet. Assurez-vous que tout est en ordre: bibliothèques, liens, etc. –

Répondre

0

J'ai eu le même problème! J'ai copié le SDL2.dll à partir du répertoire ... \ SDL2-2.0.5 \ i686-w64-mingw32 \ bin dans mon espace de travail. Ça fonctionne bien.