Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Virhe SDL

p-p [05.05.2005 11:40:55]

#

Olen aloittanut SDL:län opettelun kauan sitten, sitten suutuin siihen ja lopetin... Ja nyt taas aloin jatkamaan sitä, mutta tuli pulma matkaan, minkä takia lopetus taas uhkaa :D

#include <SDL/SDL.h>
#include <stdlib.h>
#include <stdio.h>

int DPixel(SDL_Surface * naytto, int x, int y, Uint8 R, Uint8 G, Uint8 B);

int main (int argc, char *argv[])
{
    if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0)
    {
        fprintf(stderr, "SDL:n alustus ei onnistunut.\n%s", SDL_GetError);
        SDL_Quit();
        return 0;
    }
    SDL_Surface * naytto;
    naytto = SDL_SetVideoMode(1024, 768, 16, SDL_HWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF);
    int valmis;
    int vari1, vari2 , vari3;
    int kohtax, kohtay;
    vari1 = 1;
    vari2 = 1;
    vari3 = 1;
    kohtax = 1;
    kohtay = 1;
    while (valmis == 0)
    {
        SDL_Event event;

    while (SDL_PollEvent(&event))
    {
        if(event.type == SDL_QUIT) {valmis = 1;}
        if(event.type == SDL_KEYDOWN)
        {
            if(event.key.keysym.sym == SDLK_ESCAPE) {valmis = 1;}
        }
        vari1 = vari2 + 1;
        vari2 = vari3 + 1;
        vari3 = vari1 + 1;
        kohtax = kohtay + 1;
        kohtay = kohtax + 1;
        DPixel(naytto, kohtax, kohtay, vari1, vari2, vari3);
    }
    SDL_Delay(5000);
    SDL_Quit();
    return 0;
}

int DPixel(SDL_Surface * naytto, int x, int y, Uint8 R, Uint8 G, Uint8 B)
{
    Uint32 color = SDL_MapRGB(naytto->format, R, G, B);
    switch (naytto->format->BytesPerPixel)
    {
        case 1: // Assuming 8-bpp
        {
            Uint8 *bufp;
            bufp = (Uint8 *)naytto->pixels + y*naytto->pitch + x;
            *bufp = color;
        }
        break;
        case 2: // Probably 15-bpp or 16-bpp
        {
            Uint16 *bufp;
            bufp = (Uint16 *)naytto->pixels + y*naytto->pitch/2 + x;
            *bufp = color;
        }
        break;
        case 3: // Slow 24-bpp mode, usually not used
        {
            Uint8 *bufp;
            bufp = (Uint8 *)naytto->pixels + y*naytto->pitch + x * 3;
            if(SDL_BYTEORDER == SDL_LIL_ENDIAN)
            {
                bufp[0] = color;
                bufp[1] = color >> 8;
                bufp[2] = color >> 16;
            }
            else
            {
                bufp[2] = color;
                bufp[1] = color >> 8;
                bufp[0] = color >> 16;
            }
        }
        break;
        case 4: // Probably 32-bpp
        {
            Uint32 *bufp;
            bufp = (Uint32 *)naytto->pixels + y*naytto->pitch/4 + x;
            *bufp = color;
        }
        break;
    }
    SDL_Flip(naytto);
}

Tommoisen koodin olen väkertänyt ja errori vaan laulaa...

"E:\SDL\Harjoitukset\main.c In function `SDL_main':
94 E:\SDL\Harjoitukset\main.c syntax error at end of input
E:\SDL\Harjoitukset\Makefile.win [Build Error] [main.o] Error 1"

HUOM. Tutoriaali sivulla luki että toi pixeli juttu kannattaa vaa kopioida, sen takia kommentit jäänyt ;)

Linkku [05.05.2005 11:44:29]

#

Toisesta whilestä puuttuu lopettava '}'.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta