SDL Simple DirectMedia Layer

1、簡介linux

SDL(Simple DirectMedia Layer)是一套開放源代碼的跨平臺多媒體開發庫,使用C語言寫成。SDL提供了數種控制圖像、聲音、輸出入的函數,讓開發者只要用相同或是類似的代碼 就能夠開發出跨多個平臺(Linux、Windows、Mac OS X等)的應用軟件。目前SDL多用於開發遊戲、模擬器、媒體播放器等多媒體應用領域。ide

2、配置函數

sudo apt-get install libsdl1.2-dev學習

附加包:測試

sudo apt-get install libsdl-image1.2-devui

sudo apt-get install libsdl-mixer1.2-devspa

sudo apt-get install libsdl-ttf2.0-dev開放源代碼

sudo apt-get install libsdl-gfx1.2-dev指針

也能夠去官網下載最新的源碼進行編譯。視頻

3、測試

#include "SDL/SDL.h" 
int main( int argc, char* args[] ) 

    //Start SDL 
    SDL_Init( SDL_INIT_EVERYTHING ); 
    //Quit SDL 
    SDL_Quit(); 
    return 0;     

編譯命令:g++ main.c -o main -lSDL

若是程序可以編譯經過並可以運行,那麼SDL安裝成功。

4、加載一張位圖

SDL能夠很方便的來加載位圖。

首先拷貝一張bmp格式的圖片到項目文件夾,而後修改代碼以下:

#include <stdio.h> 
#include <SDL/SDL.h> 
int main() 

    //The images 
    SDL_Surface* hello = NULL; 
    SDL_Surface* screen = NULL; 
    SDL_Init( SDL_INIT_EVERYTHING ); 
    //Set up screen 
    screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE ); 
    //Load image 
    hello = SDL_LoadBMP( "1.bmp" ); 
    //Apply image to screen 
    SDL_BlitSurface( hello, NULL, screen, NULL ); 
    //Update Screen 
    SDL_Flip( screen ); 
    //Pause 
    SDL_Delay( 5000 );     
    //Quit SDL 
    SDL_Quit(); 
    //Free memory 
    SDL_FreeSurface( hello ); 
    //Quit SDL 
    SDL_Quit(); 
    return 0; 

編譯運行:

SDL入門學習教程

若是須要加載其餘格式的圖片,須要添加SDL_image庫

幾個用到的函數解釋一下:

SDL_Init():

動態的加載和初始化SDL庫。 該函數帶有一組標記來表示哪部分須要激活:
SDL_INIT_AUDIO
SDL_INIT_VIDEO
SDL_INIT_CDROM
SDL_INIT_TIMER
SDL_INIT_EVERYTHING
使用完畢最後調用SDL_Quit()。

SDL_SetVideoMode()


設置視頻的色彩深度和分辨率

SDL_LoadBMP()

加載BMP圖片

int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);
4個參數都是指針——2個SDL_Surface指針,2個SDL_Rect指針。src是源面,也就是被blit的面;dst是目的面,也就是源面被blit到的面。

int SDL_Flip(SDL_Surface *screen);

交換屏幕緩衝

相關連接:SDL入門學習續-在SDL中使用OpenGL  http://www.linuxidc.com/Linux/2012-12/75256.htm

linux

相關文章
相關標籤/搜索