SDL_imageを使う時の注意点

標準のSDLだと Bitmap(SDL_LoadBMP)しかないので、
SDL_imageを使うと思います。

サンプルコード


 1|#include <stdio.h>
 2|#include "SDL.h"
 3|#include "SDL_image.h"
 4|
 5|SDL_Surface *screen;
 6|
 7|void display_image(char *file_name)
 8|{
 9|    SDL_Surface *image;
10|
11|    image = IMG_Load(file_name);
12|    if (image == NULL) {
13|        fprintf(stderr"Couldn't load %s%s\n", file_name, SDL_GetError());
14|        return;
15|    }
16|
17|    if (image->format->palette && screen->format->palette) {
18|    SDL_SetColors(screen, image->format->palette->colors, 0,
19|                  image->format->palette->ncolors);
20|    }
21|
22|    if(SDL_BlitSurface(image, NULL, screen, NULL) < 0)
23|        fprintf(stderr"BlitSurface error: %s\n", SDL_GetError());
24|
25|    SDL_UpdateRect(screen, 00, image->w, image->h);
26|
27|    SDL_FreeSurface(image);
28|}
29|
30|int main(int argc, char *argv[]) {
31|
32|    char *file_name = argv[1];
33|
34|    if((SDL_Init(SDL_INIT_VIDEO)==-1)) { 
35|        printf("Could not initialize SDL: %s.\n", SDL_GetError());
36|        exit(-1);
37|    }
38|
39|    screen = SDL_SetVideoMode(6404808, SDL_SWSURFACE|SDL_ANYFORMAT);
40|    if ( screen == NULL ) {
41|        fprintf(stderr"Couldn't set 640x480x8 video mode: %s\n",
42|                        SDL_GetError());
43|        exit(1);
44|    }
45|
46|    display_image(file_name);
47|    SDL_Delay(5*1000);
48|
49|    SDL_Quit();
50|    exit(0);
51|}
52|

ここで、注意点としてリンカする際に
-Wl,-rpath,$(SDLlib)
を追加することです。と書いていて、
SDL1.2.12だと「libtool」によって自動的にみにいくようになった???(未確認)
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数