最近在研究计算机图形学,打算自己搓一个光栅化程序,故需要用到SDL库做图像显示
本人对c++的态度是浅尝辄止的,所以比较喜欢用xmake来搭建项目,因为很方便
安装过程如下:
安装SDL库
sudo apt-get install libsdl2-dev
SDL库是有很多子集的,具体需要看个人需求,安装指令可以看下面这个教程:
本人安装第一次失败了,之后挂了梯子安装成功
建立xmake项目
xmake具体使用方式不在这里详细说明了,可以访问他们官网,写的非常详细,而且是中文的
这里给出xmake脚本和测试文件
xmake.lua
add_requires("libsdl")
target("SDL_helloworld")
add_packages("libsdl")
set_kind("binary")
add_files("SDL_helloworld.cpp")
测试程序(SDL_helloworld.cpp)(网上扒的,我还不会这个库)
//Using SDL and standard IO
#include "SDL2/SDL.h"
//#include <SDL2/SDL_image.h>
#include <stdio.h>
// 屏幕尺寸常数`在这里插入代码片`
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
int main( int argc, char* args[] ){
// 我们要渲染的窗口
SDL_Window* window = NULL;
// 窗口所包含的表面
SDL_Surface* screenSurface = NULL;
// 初始化SDL
if( SDL_Init( SDL_INIT_VIDEO ) < 0 ){
printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
}else{
// 创建窗口
window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
if( window == NULL ){
printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
}else{
// 获取窗口表面
screenSurface = SDL_GetWindowSurface( window );
// 用白色填充表面
SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF ) );
// 更新表面
SDL_UpdateWindowSurface( window );
// 等待2秒
SDL_Delay( 2000 );
}
}
// 销毁窗户
SDL_DestroyWindow( window );
// 退出SDL子系统
SDL_Quit();
return 0;
}