Simple Directmedia Layer

Simple DirectMedia Layer (thường được viết tắt là SDL) là một thư viện lập trình có khả năng trừu tượng hóa các phần cứng đồ họa, âm thanh hay thiết bị vào và ra.

Thư viện này giúp các lập trình viên viết các chương trình giải trí hay các ứng dụng đa phương tiện (multimedia) trên nhiều hệ điều hành khác nhau như: GNU/Linux, Windows, Mac OS Classic, Mac OS X, BeOS và một vài hệ điều hành không chính thức khác. Qua thư viện này, lập trình viên có thể điều khiển phần hiển thị, sự kiện, âm thanh, ổ dĩa CD-ROM, thread và đồng hồ đo giờ.

Simple Directmedia Layer
Simple DirectMedia Layer

Lịch sử Simple Directmedia Layer

Sam Lantinga là người tạo ra thư viện này vào năm 1998, lúc ông còn làm cho hãng Loki Software. Ông nảy ra ý định này khi mang các chương trình Windows vào môi trường Macintosh. Sau đó ông dùng thư viện này để đem chương trình giải trí Doom sang hệ điều hành BeOS (Xem mã nguồn của chương trình Doom). Một vài thư viện tự do khác như SMPEG và OpenAL có thể hoạt động chung với SDL.

SDL được chia thành nhiều hệ thống con (subsystem) như: Video, Audio, CD-ROM, Joystick và Timer. Bên cạnh những hệ thống con cơ bản này, do đây là thư viện cấp thấp, còn có một số thư viện chính thức riêng biệt, cung cấp các chức năng khác. Bao gồm:

  • SDL_image: cung cấp các hàm để đọc các định dạng ảnh phổ biến ngày nay như: JPEG, PNG, BMP...
  • SDL_mixer: các hàm audio dùng để hòa âm (mixing) hay đọc các tập tin âm thanh hay nhạc như: WAV, OGG, MP3
  • SDL_net: hỗ trợ lập trình mạng đa hệ điều hành
  • SDL_ttf: hỗ trợ hiển thị các phông chữ TTF (true type font)
  • SDL_rtf: hỗ trợ hiển thị định dạng RTF đơn giản

Sơ lược Simple Directmedia Layer

Đây là thư viện đa phương tiện, đa nền tảng (cross-platform), được thiết kế để cung cấp sự truy cập ở mức cấp thấp đến âm thanh, hình ảnh, bàn phím, chuột, cần điều khiển game (joystick), phần cứng 3D (3D hardware)... thông qua OpenGL và 2D video framebuffer.

SDL hỗ trợ các hệ điều hành như Linux, Windows, Windows CE, BeOS, MacOS, MacOS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX và QNX. Ngoài ra còn hỗ trợ một số hệ điều hành khác như: AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS và OS/2 nhưng không chính thức.

Thư viện SDL được viết bằng C chuẩn, nhưng hỗ trợ tốt với C++ và nhiều ngôn ngữ lập trình khác như: Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby và Smalltalk.

Kiến trúc Simple Directmedia Layer

SDL thật sự là một gói bao bọc (wrapper) xung quanh các chức năng xác định của hệ điều hành. Mục đích chính của SDL là lập thành một giao diện lập trình cốt lõi đa hệ điều hành phổ biến cho việc truy cập chức năng đa phương tiện.

Do cách thiết kế của SDL, hầu hết mã nguồn của thư viện được tách thành nhiều phần cho từng hệ điều hành. Khi SDL được biên dịch cho một hệ điều hành, các phần thích hợp được chọn cho hệ điều hành đó.

Trong sơ đồ, đối với hệ điều hành Windows, SDL thật sự bao bọc xung quanh DirectX. Phiên bản cũ của SDL sử dụng DirectX 5. Phiên bản ổn định hiện tại của SDL sử dụng DirectX 7. Trong môi trường đồ họa X11, bao gồm Linux, SDL sử dụng Xlib để giao tiếp với hệ thống X11 khi làm việc với đồ họa và sự kiện.

Thí dụ bằng ngôn ngữ C Simple Directmedia Layer

Dưới đây là một chương trình rất đơn giản dùng thư viện SDL. Nó khởi động các hệ thống đa phương tiện, đợi 2 giây rồi sau đó nó đóng thư viện SDL và trở về hệ điều hành.

// Dùng các hàm của thư viện SDL #include "SDL.h"  // Hàm chính int main(int argc, char* argv[]) {  // Khởi động thư viện SDL  if(SDL_Init(SDL_INIT_EVERYTHING) == -1)  return(1);   // Đợi 2 giây  SDL_Delay(2000);   // Thoát khỏi SDL  SDL_Quit();   // Trở về hệ điều hành  return 0; } 

bộ sưu tập Simple Directmedia Layer

Xem thêm

Liên kết ngoài

Tags:

Lịch sử Simple Directmedia LayerSơ lược Simple Directmedia LayerKiến trúc Simple Directmedia LayerThí dụ bằng ngôn ngữ C Simple Directmedia Layerbộ sưu tập Simple Directmedia LayerSimple Directmedia LayerBeOSCDLibrary (computing)LinuxMac OSMicrosoft Windows

🔥 Trending searches on Wiki Tiếng Việt:

Byeon Woo-seokKhởi nghĩa Hai Bà TrưngDanh sách quốc gia theo GDP (danh nghĩa)Bảng xếp hạng bóng đá nam FIFAThái BìnhTổng Bí thư Ban Chấp hành Trung ương Đảng Cộng sản Việt NamDanh mục các dân tộc Việt NamHà TĩnhĐắk LắkNguyễn DuTháp EiffelPhilippinesĐài Á Châu Tự DoChùa Một CộtNew ZealandTrần Thanh MẫnGiải bóng đá Ngoại hạng AnhKu Klux KlanLa NiñaNguyễn Cao KỳChu Văn AnIsraelKhởi nghĩa Yên ThếVăn hóaThành nhà HồChiếc thuyền ngoài xaBảng chữ cái tiếng AnhCao BằngHồ Dầu TiếngNhà LýBến CátLiên QuânIndonesiaTriệu Lộ TưQuả bóng vàng châu ÂuThủy triềuĐồng ThápNguyễn Ngọc TưThủ tướng Chính phủ nước Cộng hòa xã hội chủ nghĩa Việt NamNguyễn Công PhượngViệt Nam Dân chủ Cộng hòaChiến dịch Mùa Xuân 1975Lăng Chủ tịch Hồ Chí MinhMai vàngĐài Truyền hình Việt NamNhà TrầnQuỳnh búp bêMã MorseQuần đảo Cát BàChữ HánHệ sinh tháiHoàng Phủ Ngọc TườngVirusHà Thanh XuânCục Cảnh sát điều tra tội phạm về tham nhũng, kinh tế, buôn lậuDanh sách quốc gia và vùng lãnh thổ châu ÁNinh BìnhDanh sách nhân vật trong DoraemonSécTruyện KiềuTích phânTây Ban NhaChân Hoàn truyệnChu vi hình trònTrần Đại NghĩaKim loại kiềm thổĐường cao tốc Cam Lâm – Vĩnh HảoShopeeCộng hòa Nam PhiMùi cỏ cháyQuảng TrịÔ nhiễm môi trườngPhan Văn MãiTottenham Hotspur F.C.Liverpool F.C.Benjamin FranklinNhư Ý truyện69 (tư thế tình dục)Campuchia🡆 More