- //===================================================
- // Name : SDL.cpp
- // Author :
- // Version :
- // Copyright : Your copyright notice
- // Description : Hello World in C++, Ansi-style
- //===================================================
- #include <iostream>
- #include <SDL/SDL.h>
- #include <cstdio>
- #include <cstdlib>
- using namespace std;
- int main(int argc,char* argv[])
- {
- /*
- * 初始化SDL表面
- */
- SDL_Surface *screen = NULL;
- SDL_Surface *hello = NULL;
- /*
- * 使用前必须使用SDL_Init初始化
- * 返回 -1 出错
- * SDL_INIT_VIDEO 视频
- * SDL_INIT_AUDIO 音频
- * SDL_INIT_TIMER 计时器
- * SDL_INIT_CDROM 光驱
- * SDL_INIT_JOYSTICK 游戏柄
- * SDL_INIT_EVERYTHING 全部
- * SDL_INIT_NOPARACHUTE 事件处理
- * SDL_INIT_EVENTTHREAD 线程
- * SDL_Init 与 SDL_Quit 对应 要在程序结束前调用
- */
- if((SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1))
- {
- fprintf(stderr,"Could not initialize SDL: %s./n", SDL_GetError());
- exit(-1);
- }
- /*
- * 设置视频模式
- * SDL_SWSURFACE Create the video surface in system memory
- * SDL_HWSURFACE
- * SDL_ASYNCBLIT
- * SDL_ANYFORMAT
- * SDL_HWPALETTE
- * SDL_DOUBLEBUF
- * SDL_FULLSCREEN
- * SDL_OPENGL
- * SDL_OPENGLBLIT
- * SDL_RESIZABLE
- * SDL_NOFRAME
- */
- screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE|SDL_ANYFORMAT);
- if ( screen == NULL ) {
- fprintf(stderr, "Couldn't set 640x480x8 video mode: %s./n",SDL_GetError());
- exit(-1);
- }
- /*
- * 设置hello界面
- */
- hello = SDL_LoadBMP("Data/sayHello.bmp");
- if(hello == NULL)
- {
- fprintf(stderr,"Could't load the picture file: %s/n",SDL_GetError());
- }
- /*
- * 将图片应用于Screen界面上
- * 4个参数都是指针——2个SDL_Surface指针,2个SDL_Rect指针。
- * src是源面,也就是被blit的面;
- * dst是目的面,也就是源面被blit到的面。
- * srcrect是源面上的一个矩形区域,实际上,正是这个矩形区域被blit,如果是空指针,则整个源面被blit;
- * dstrect虽然是个矩形区域指针,但是实际上只用到了这个矩形左上角坐标的数据。
- * 所以,实际上,它是源面被blit到目的面上的坐标。
- * 如果是空指针,则被blit到目的面的左上角(0,0).
- */
- SDL_BlitSurface( hello, NULL, screen, NULL );
- /*
- * 更新界面
- */
- SDL_Flip( screen );
- /*
- * 等待
- */
- SDL_Delay( 2000 );
- /*
- * 释放界面
- */
- SDL_FreeSurface( hello );
- /*
- * 退出SDL环境
- */
- SDL_Quit();
- exit(0);
- }
Opengl SDL工具开发 学习笔记 002
最新推荐文章于 2024-04-19 02:37:35 发布