SDL初始化和创建窗口

//初始化SDL2和创建一个窗口,并且将屏幕绘制成大红色
#include <iostream>
extern "C"
{
#include <SDL.h>
}

int main(int argc, char* argv[])
{
	//窗口
	SDL_Window *windowScreen = NULL;
	//窗口表面
	SDL_Surface *windowSurface = NULL;
	
	//初始化SDL2
	if (SDL_Init(SDL_INIT_VIDEO) == -1)
	{
		std::cout << SDL_GetError() << std::endl;
		return -1;
	}

	/* 创建窗口
	*第一个参数是窗口的标题
	*第二、三个参数指明了窗口的位置信息
	*第四、五个参数是窗口的大小(长、宽)
	*第六个参数是窗口的状态
	*SDL_WINDOW_SHOWN--显示窗口
	*SDL_WINDOW_BORDERLESS--显示无边框窗口
	*/
	windowScreen = SDL_CreateWindow("title", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 240, 400, SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS);
	if (!windowScreen)
	{
		std::cout << SDL_GetError() << std::endl;
		return -1;
	}

	// 获取窗口的表面
	windowSurface = SDL_GetWindowSurface(windowScreen);
	if (!windowSurface)
	{
		std::cout << SDL_GetError() << std::endl;
		return -1;
	}

	/*填充窗口
	*第一个参数是填充的目标表面
	*第二个是填充的矩形区域(NULL则表示默认全部填充)
	*第三个参数是填充矩形用的颜色
	*/
	SDL_FillRect(windowSurface, NULL, SDL_MapRGB(windowSurface->format, 0xFF, 0x00, 0x00));

	//将窗口表面加载到窗口
	SDL_UpdateWindowSurface(windowScreen);
	//暂停窗口
	SDL_Delay(2000);
	
	
	SDL_FreeSurface(windowSurface);
	SDL_DestroyWindow(windowScreen);
	SDL_Quit();
	return 0;
}


/*配置
1.VC++目录 include lib dll
2.链接器->输入->附加依赖项 SDL2.lib SDL2main.lib
3.链接器->系统->子系统  窗口 (/SUBSYSTEM:WINDOWS)  控制台 (/SUBSYSTEM:CONSOLE)
4.C++->代码生成->运行库 /MD
编译
cl /MD /c c.cpp
链接
link /SUBSYSTEM:CONSOLE c.obj SDL2.lib SDL2main.lib
*/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

N3verL4nd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值