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 ;)
Toisesta whilestä puuttuu lopettava '}'.
Aihe on jo aika vanha, joten et voi enää vastata siihen.