Eli en saa SDL2 oikein nyt toimimaan. Palauttaa aina errorin 3 n.0.5sekunnin käynnissä olon jälkeen, mutta ei mitään errori infoa mukana. Vain kolmosen. Sama toistuu vaikka kopioisin suoraan ohjelmointiputkan esimerkkiohjelman.
Tämä errori ilmestyi heti kun yritän asentaa kuvapintaa tekstuurin. Jos otan sen rivin pois niin toimii taas.
#include <iostream> #include <windows.h> #include <stdlib.h> #include <stdio.h> #include <SDL2/SDL.h> #include <SDL/SDL_image.h> using namespace std; int main(int argc, char** argv) { SDL_Init(SDL_INIT_EVERYTHING); if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { fprintf(stderr, "Virhe: %s\n", SDL_GetError()); exit(1); } atexit(SDL_Quit); SDL_Window *ikkuna; SDL_Renderer *piirtaja; SDL_Surface *kuvapinta; SDL_Surface *kuvapinta2; SDL_Texture *tekstuuri; kuvapinta = IMG_Load("kuva.PNG"); kuvapinta2 = SDL_LoadBMP("kuva.BMP"); if (!kuvapinta2) { fprintf(stderr, "Virhe: %s\n", SDL_GetError()); exit(3); } if (!kuvapinta) { fprintf(stderr, "Virhe: %s\n", SDL_GetError()); exit(3); } SDL_CreateWindowAndRenderer(640, 480, 0, &ikkuna, &piirtaja); SDL_SetWindowTitle(ikkuna, "SDL2-kokeilu"); tekstuuri = SDL_CreateTextureFromSurface(piirtaja, kuvapinta2); //tämän rivin jos poistaa niin toimii taas if (!tekstuuri) { fprintf(stderr, "Virhe: %s\n", SDL_GetError()); exit(3); } SDL_FreeSurface(kuvapinta); while (!SDL_QuitRequested() && SDL_GetTicks() < 5000) { SDL_SetRenderDrawColor(piirtaja, 0, 0, 0, 255); SDL_RenderClear(piirtaja); // Näytetään piirrokset. SDL_RenderPresent(piirtaja); SDL_Delay(100); } return 0; }
Et kai yritä käyttää vanhan SDL:n SDL_image-kirjastoa SDL2:lla tehdyssä ohjelmassa? Ihme, että ohjelma edes linkittyy ja käynnistyy... Lisäksi tulosteet taitavat yhä SDL:n Windows-versiossa mennä oletuksena tiedostoihin stdout.txt ja stderr.txt, etsi virheilmoituksiasi sieltä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.