Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Blanco scherm met SDL en C++ in Eclipse  (gelezen 1014 keer)

Blanco scherm met SDL en C++ in Eclipse
« Gepost op: 2012/07/12, 12:28:26 »
Ik ben een poosje geleden begonnen met C++, en ben in SDL gedoken. Nu kom ik al bij mijn eerste probleem; na het compileren krijg ik een leeg, zwart scherm, terwijl de 2 bronbestanden daadwerkelijk in dezelfde map staan, en de juiste naam hebben.
Ik heb het ook geprobeerd handmatig te compileren, dit gaf een half resultaat; 1 bestand werd daadwerkelijk weergeven, de andere niet. Maar helaas, na nog zo'n twee keer uitgevoerd te hebben is deze ook zwart geworden. Het kan overigens zijn dat ik wat over het hoofd heb gezien met het handmatig compilen, dat doe ik namelijk ook nog niet elke dag.
Ik ben nu dus een beetje einde raad, Google heeft me ook niet uit de branding geholpen, dus ik hoop dat jullie me verder kunnen helpen.
Alvast bedankt!
Desktop:
Processor: Intel® Core™2 Quad CPU Q8300 @ 2.50GHz × 4, Geheugen: 3.9Gb, GPU: nVidia 220GT OS: Windows 7 64 bit / Ubuntu 12.04 64 bit
Notebook:
Processor: Intel® Core™ i7-4700MQ, Geheugen: 8Gb, GPU: nVidia GTX765m (met Optimus) OS: Windows 8 64 bit / Elementary OS Luna 64 bit

Re: Blanco scherm met SDL en C++ in Eclipse
« Reactie #1 Gepost op: 2012/07/12, 14:53:12 »
Misschien is het handig als we toegang hebben tot je broncode.

Re: Blanco scherm met SDL en C++ in Eclipse
« Reactie #2 Gepost op: 2012/07/14, 23:28:59 »
Maar natuurlijk ;)

#include "SDL/SDL.h"
#include <string>

//attritbutes of the screen
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32;

//surfaces that will be used
SDL_Surface *message = NULL;
SDL_Surface *background = NULL;
SDL_Surface *screen = NULL;

SDL_Surface *load_image(std::string filename)
{
    //tmp storage for the image
    SDL_Surface* loadedImage = NULL;
    SDL_Surface* optimizedImage = NULL;
    loadedImage = SDL_LoadBMP(filename.c_str());

    //check if went right
    if(loadedImage != NULL)
    {
        //create optimized image
        optimizedImage = SDL_DisplayFormat(loadedImage);
        SDL_FreeSurface(loadedImage);
    }
    return optimizedImage;
}

void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination)
{
    //make a temp rectangle to hold offsets
    SDL_Rect offset;
    offset.x = x;
    offset.y = y;

    SDL_BlitSurface(source, NULL, destination, &offset);
}

int main( int argc, char* args[])
{
    if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 )
    {
        return 1;
    }

    screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE);

    if (screen == NULL)
    {
        return 1;
    }

    SDL_WM_SetCaption("Hello world!", NULL);

    message = load_image("hello.bmp");
    background = load_image("background.bmp");

    if(SDL_Flip(screen) == -1)
    {
        return 1;
    }

    SDL_Delay(2000);

    apply_surface(0, 0, background, screen);
    apply_surface(320, 0, background, screen);
    apply_surface(0, 240, background, screen);
    apply_surface(320, 240, background, screen);
    apply_surface(180, 140, message, screen);

    //Free the surfaces
    SDL_FreeSurface( message );
    SDL_FreeSurface( background );

    //Quit SDL
    SDL_Quit();

    //Return
    return 0;
}
Desktop:
Processor: Intel® Core™2 Quad CPU Q8300 @ 2.50GHz × 4, Geheugen: 3.9Gb, GPU: nVidia 220GT OS: Windows 7 64 bit / Ubuntu 12.04 64 bit
Notebook:
Processor: Intel® Core™ i7-4700MQ, Geheugen: 8Gb, GPU: nVidia GTX765m (met Optimus) OS: Windows 8 64 bit / Elementary OS Luna 64 bit

Re: Blanco scherm met SDL en C++ in Eclipse
« Reactie #3 Gepost op: 2012/07/15, 00:28:12 »
Heel slim,  apply_surface staat NA SDL_Flip. Dat gaat natuurlijk niet werken.
Heb het er nu voor gezet, maar nog steeds zwart scherm, dus even kijken of er niet nog iets mis is.
Desktop:
Processor: Intel® Core™2 Quad CPU Q8300 @ 2.50GHz × 4, Geheugen: 3.9Gb, GPU: nVidia 220GT OS: Windows 7 64 bit / Ubuntu 12.04 64 bit
Notebook:
Processor: Intel® Core™ i7-4700MQ, Geheugen: 8Gb, GPU: nVidia GTX765m (met Optimus) OS: Windows 8 64 bit / Elementary OS Luna 64 bit

Re: Blanco scherm met SDL en C++ in Eclipse
« Reactie #4 Gepost op: 2012/07/15, 00:56:58 »
Gek genoeg lukt het nu via de terminal wel, maar via Eclipse nog niet.
Nog niet helemaal opgelost dus, maar wel work-around.
Desktop:
Processor: Intel® Core™2 Quad CPU Q8300 @ 2.50GHz × 4, Geheugen: 3.9Gb, GPU: nVidia 220GT OS: Windows 7 64 bit / Ubuntu 12.04 64 bit
Notebook:
Processor: Intel® Core™ i7-4700MQ, Geheugen: 8Gb, GPU: nVidia GTX765m (met Optimus) OS: Windows 8 64 bit / Elementary OS Luna 64 bit