Opengl SDL工具开发 学习笔记 002

Code:
  1. //===================================================  
  2. // Name        : SDL.cpp  
  3. // Author      :  
  4. // Version     :  
  5. // Copyright   : Your copyright notice  
  6. // Description : Hello World in C++, Ansi-style  
  7. //===================================================  
  8.   
  9. #include <iostream>  
  10. #include <SDL/SDL.h>  
  11. #include <cstdio>  
  12. #include <cstdlib>  
  13.   
  14. using namespace std;  
  15.   
  16. int main(int argc,char* argv[])  
  17. {  
  18.     /* 
  19.      * 初始化SDL表面 
  20.      */  
  21.     SDL_Surface *screen = NULL;  
  22.     SDL_Surface *hello = NULL;  
  23.     /* 
  24.      * 使用前必须使用SDL_Init初始化 
  25.      * 返回 -1 出错 
  26.      * SDL_INIT_VIDEO 视频 
  27.      * SDL_INIT_AUDIO 音频 
  28.      * SDL_INIT_TIMER 计时器 
  29.      * SDL_INIT_CDROM 光驱 
  30.      * SDL_INIT_JOYSTICK 游戏柄 
  31.      * SDL_INIT_EVERYTHING 全部 
  32.      * SDL_INIT_NOPARACHUTE 事件处理 
  33.      * SDL_INIT_EVENTTHREAD 线程 
  34.      * SDL_Init 与 SDL_Quit 对应 要在程序结束前调用 
  35.      */  
  36.     if((SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1))  
  37.     {  
  38.         fprintf(stderr,"Could not initialize SDL: %s./n", SDL_GetError());  
  39.         exit(-1);  
  40.     }  
  41.     /* 
  42.      * 设置视频模式 
  43.      * SDL_SWSURFACE    Create the video surface in system memory 
  44.      * SDL_HWSURFACE 
  45.      * SDL_ASYNCBLIT 
  46.      * SDL_ANYFORMAT 
  47.      * SDL_HWPALETTE 
  48.      * SDL_DOUBLEBUF 
  49.      * SDL_FULLSCREEN 
  50.      * SDL_OPENGL 
  51.      * SDL_OPENGLBLIT 
  52.      * SDL_RESIZABLE 
  53.      * SDL_NOFRAME 
  54.      */  
  55.     screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE|SDL_ANYFORMAT);  
  56.     if ( screen == NULL ) {  
  57.         fprintf(stderr, "Couldn't set 640x480x8 video mode: %s./n",SDL_GetError());  
  58.         exit(-1);  
  59.     }  
  60.     /* 
  61.      * 设置hello界面 
  62.      */  
  63.     hello = SDL_LoadBMP("Data/sayHello.bmp");  
  64.     if(hello == NULL)  
  65.     {  
  66.         fprintf(stderr,"Could't load the picture file: %s/n",SDL_GetError());  
  67.     }  
  68.     /* 
  69.      * 将图片应用于Screen界面上 
  70.      * 4个参数都是指针——2个SDL_Surface指针,2个SDL_Rect指针。 
  71.      * src是源面,也就是被blit的面; 
  72.      * dst是目的面,也就是源面被blit到的面。 
  73.      * srcrect是源面上的一个矩形区域,实际上,正是这个矩形区域被blit,如果是空指针,则整个源面被blit; 
  74.      * dstrect虽然是个矩形区域指针,但是实际上只用到了这个矩形左上角坐标的数据。 
  75.      * 所以,实际上,它是源面被blit到目的面上的坐标。 
  76.      * 如果是空指针,则被blit到目的面的左上角(0,0). 
  77.      */  
  78.     SDL_BlitSurface( hello, NULL, screen, NULL );  
  79.     /* 
  80.      * 更新界面 
  81.      */  
  82.     SDL_Flip( screen );  
  83.     /* 
  84.      * 等待 
  85.      */  
  86.     SDL_Delay( 2000 );  
  87.     /* 
  88.      * 释放界面 
  89.      */  
  90.     SDL_FreeSurface( hello );  
  91.     /* 
  92.      * 退出SDL环境 
  93.      */  
  94.     SDL_Quit();  
  95.     exit(0);  
  96. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值