linux下C語言編程8-SDL圖形入門

來源:互聯網
上載者:User

SDL簡介

     SDL 是 Simple DirectMedia Layer(簡易直控媒體層)的縮寫。它是一個跨平台的多媒
體庫,以用於直接控制底層的多媒體硬體的介面。這些多媒體功能包括了音頻、鍵盤和滑鼠
(事件)    、遊戲搖杆等。當然,最為重要的是提供了 2D 圖形幀緩衝(framebuffer)的介面,
以及為 OpenGL 與各種作業系統之間提供了統一的標準介面以實現 3D 圖形。從這些屬性我
們可以看出,SDL 基本上可以認為是為以電腦遊戲為核心開發的多媒體庫。
     SDL 支援主流的作業系統,包括 Windows 和 Linux。在官方的介紹中,我們可以找到
它所支援的其他平台。 (SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X,
FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. ) 。SDL 本身從 C 語言開發,
並且能很好的在 C++等進階語言中使用。在官方可以看到 SDL 所支援的語言很多,包括
Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl,
PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl.

 

SDL官網

http://www.libsdl.org/

SDL手冊http://www.libsdl.org/docs.php,手冊不錯,可下載。

 

安裝SDL

我的系統為ubuntu,安裝方法為:

sudo apt-get install libsdl1.2-dev
順便把下面幾個補充封裝上:
sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libsdl-ttf2.0-dev

安裝完成後,標頭檔(*.h)會放在目錄/usr/include/SDL/下.

 

include

(1)#include "SDL.h"

(2)#include <SDL.h>

(3)#include "SDL/SDL.h"

(4)#include <SDL/SDL.h>

這4個是一樣的,SDL必須全為大寫。

 

編譯格式

gcc -o test test.c `sdl-config --cflags --libs`

g++同gcc

 

例子

#include <SDL.h>   /* All SDL App's need this */
#include <stdio.h>

// gcc -o test test.c `sdl-config --cflags --libs`
int main() {
   
    printf("Initializing SDL./n");
   
    /* Initialize defaults, Video and Audio */
    if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) {
        printf("Could not initialize SDL: %s./n", SDL_GetError());
        exit(-1);
    }

    printf("SDL initialized./n");

    // 建立一個視窗,並載入一張圖片
    SDL_Surface* screen = NULL;
    screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );

    SDL_Surface* img = SDL_LoadBMP( "hello.bmp" );

    SDL_BlitSurface( img, NULL, screen, NULL );
    //Update Screen
    SDL_Flip( screen );
    SDL_Delay( 5000 );
   
    printf("Quiting SDL./n");
   
    /* Shutdown all subsystems */
    SDL_Quit();
   
    printf("Quiting..../n");

    exit(0);
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.