2011년 9월 7일 수요일

SDL pixel 값 조작

SDL pixel 값 얻고 설정
참고: http://lazyfoo.net/SDL_tutorials/lesson31/index.php

// pixel 값 얻기
static Uint32 getPixel32(SDL_Surface *surface, int x, int y) {
    Uint32 *pixels = (Uint32*)surface->pixels;
    return pixels[(y*surface->w)+x];
}

// pixel 값 설정
static void putPixel32(SDL_Surface *surface, int x, int y, Uint32 pixel) {
    Uint32 *pixels = (Uint32*)surface->pixels;
    pixels[(y*surface->w)+x] = pixel;
}

RGB 컬러값 만들기
- SDL_MapRGB 함수 또는 SDL_MapRGBA 함수를 이용하여 32bit color 값을 만들 수 있다.
SDL_MapRGB(const SDL_PixelFormat *format, const Uint8 r, const Uint8 g, const Uint8 b);
- format 에 SDL_Surface 의 format 값을 넣어주면 되고 r, g, b 값을 차례로 넣어 주면 현재 pixel format 에 맞는 32bit color 값이 생성된다.

댓글 없음:

댓글 쓰기