一、SDL 视频显示函数 1、SDL_Init 函数 使用 SDL 开发库 的 功能 之前 , 都要先 初始化 SDL 系统环境 ; 调用 SDL_Init() 函数 , 可以初始化 SDL 系统上下文环境...SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \ SDL_INIT_JOYSTICK...); 2、SDL_Quit 函数 SDL_Init 函数 的作用是 初始化 要使用的各个子系统 , 使用完毕后需要退出 , SDL_Quit 函数 就是退出 SDL 系统 时需要调用的函数 ; SDL_Quit...SDL 环境 , 用于播放视频 SDL_Init(SDL_INIT_VIDEO); // 创建 SDL_Window 窗口对象 window = SDL_CreateWindow...操作系统中 , 每个应用的窗口都是一个 SDL_Window 对象 ; 在 SDL_Window 窗口 中 , 可以 有多个 SDL_Renderer 渲染器 , 渲染器 可以用于渲染 / 显示 纹理
golang版本sdl2显示窗体 go用syscall调用sdl2,在win10 x64上没问题,其他系统不敢保证。...{ sdlcommon.SetSDL2Path("SDL2.dll") sdl.SDL_Init(sdl.SDL_INIT_VIDEO) window := sdl.SDL_CreateWindow...("微信公众号:福大大架构师每日一题", sdl.SDL_WINDOWPOS_UNDEFINED, sdl.SDL_WINDOWPOS_UNDEFINED, 640, 480, sdl.SDL_WINDOW_OPENGL...|sdl.SDL_WINDOW_RESIZABLE) if window == nil { fmt.Printf("Can't create window, err:%s", sdl.SDL_GetError...() sdl.SDL_Quit() } 执行结果如下:
golang版本sdl2显示窗体go用syscall调用sdl2,在win10 x64上没问题,其他系统不敢保证。...main() {sdlcommon.SetSDL2Path("SDL2.dll")sdl.SDL_Init(sdl.SDL_INIT_VIDEO)window := sdl.SDL_CreateWindow...("微信公众号:福大大架构师每日一题", sdl.SDL_WINDOWPOS_UNDEFINED, sdl.SDL_WINDOWPOS_UNDEFINED, 640, 480, sdl.SDL_WINDOW_OPENGL...|sdl.SDL_WINDOW_RESIZABLE)if window == nil {fmt.Printf("Can't create window, err:%s", sdl.SDL_GetError...())return}fmt.Println(window.SDL_GetWindowTitle())sdl.SDL_Delay(5000)window.SDL_DestroyWindow()sdl.SDL_Quit
,这里只显示图片,所以只初始化VIDEO系统,更多的支持查看官方文档 SDL_Init(SDL_INIT_VIDEO); //为了显示png图片,额外使用了图片库,所以要单独初始化...* renderer = SDL_CreateRenderer(window, -1, 0); //如果只是显示一张bmp图片,使用sdl内置的功能即可 //SDL_Surface *...image = SDL_LoadBMP("only_support_BMP.bmp"); //因为要显示png图片,所以使用了外部库,sdl_image库当前支持jpg/png/webp/tiff...GTK/MFC/QT/Cocoa也是显示相关这没错,但是它们主要是提供用户程序的界面管理、显示及事件处理。...sdl2_image)的意思是,将sdl2_image代码库及其依赖库(这里当然就是sdl2库)的编译参数和引用库参数全部显示出来,作为字符串加入到编译命令中去。
写这类教程的目的是, 熟悉Linux基本操作和嵌入式开发流程, 希望对你有所帮助. 前面我们讲过系统起来后开机LOGO的制作, 韦老师第3期讲了如何显示jpeg图片, 那么怎么显示bmp图片?...480, 272, 32, SDL_SWSURFACE|SDL_ANYFORMAT); //设置了LCD最大能显示的分辨率 if(screen == NULL) { printf...好俊的马啊~ 二、移植SDL到JZ2440 Ubuntu: Ubuntu9.10 开发板:JZ2440 任意uboot kernel:Linux-2.6.22.6 文件系统:fs_qtopia.yaffs2...编译器:arm-linux-gcc-3.4.2 1.到官网下载 SDL-1.2.15.tar.gz, 并上传到Ubuntu 解压 $ tar zxf SDL-1.2.15.tar.gz $ cd... --build=i386 CC=arm-linux-gcc CXX=arm-linux-g++ 编译安装 $ make &&make install 这时tmp下多了4个目录,这就是编译SDL所得到的文件
SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。...解压编译 wbyq@wbyq:~/work_pc$ tar xvf /mnt/hgfs/linux-share-dir/SDL2-2.0.12.tar.gz wbyq@wbyq:~/work_pc/SDL2...SDL_quit.h │ ├── SDL_rect.h │ ├── SDL_render.h │ ├── SDL_revision.h │ ├── SDL_rwops.h...库打开窗口显示一张BMP图片。...SDL_Init(SDL_INIT_VIDEO) !
* rect, const double angle, const SDL_Point* center, const SDL_RendererFlip flip, std::string...* win_ = nullptr; SDL_Renderer* renderer_ = nullptr; SDL_Texture* texture_ = nullptr; SDL_AudioSpec...= nullptr) { renderer_ = SDL_CreateRenderer(win_, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC...(SDL_LASTERROR);\ } Csdl2 g_test; void SDLCALL SDL_AudioCB(void* userdata, Uint8* stream, int len) {...* hwnd = SDL_CreateWindow("test csdl2", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 320, 240, SDL_WINDOW_SHOWN
拓展: SDL(Simple DirectMedia Layer)是一个跨平台的底层开发库,提供操作诸如音频、键盘、鼠标、游戏杆以及显卡等硬件的方法,被很多多媒体播放器、模拟器和流行游戏所使用,SDL支持...Windows、MacOS、Linux、iOS以及Android,也就是说你目所能及的几乎所有平台它都能运行,并且SDL是开源的,完全由C语言编写,可以在C/C++以及众多主流编程语言中被使用。...使用SDL来显示YUV数据的大概步骤是这样的: 第一步,初始化SDL视频子系统并定义YUVOverlay: SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO|SDL_INIT_TIMER..., SDL_YUY2_OVERLAY, screen); 第二步,将YUV数据拷贝到YUVOverlay中(需加锁): SDL_LockYUVOverlay...,显示: SDL_DisplayYUVOverlay(bmp, &rect); 当然,有时候YUV数据(上面的变量yuvdata)的各个分量跟SDL的定义方式不同,需要调换次序,总体而言大概如下图所示:
在屏幕上显示图像 现在你已经打开了一个窗口,让我们在上面放一张图片。 注意:从现在开始,教程将只涉及源代码的关键部分。如果想看完整的程序,你必须下载完整的源码。...//我们要渲染的窗口 SDL_Window* gWindow = NULL; //窗口所包含的表面 SDL_Surface* gScreenSurface = NULL; //我们将加载并显示在屏幕上的图像...gWindow = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH...新功能是调用了SDL_GetWindowSurface。 我们想在窗口内部显示图像,为了做到这一点,我们需要得到窗口内部的图像。...在屏幕上绘制了所有我们要显示的这一帧画面后,我们要使用SDL_UpdateWindowSurface来更新屏幕。当你画到屏幕上的时候,一般不是画到你所能看到的屏幕图像上。
SDL简介 SDL(Security Development Lifecycle,安全开发生命周期)是由微软提出的一种从安全角度指导软件开发的管理模式,它主要通过在传统的软件开发生命周期的各个阶段穿插一系列的安全活动来保障和提升产品自身的安全能力...微软标准 微软在提出SDL的同时也给予了一套实践参考标准: 微软SDL参考标准可以进一步细化为以下三个核心: 培训阶段:对软件产品开发相关的人员(产品经理、项目经理、研发人员等)进行安全培训,培训内容应当贯穿整个...SDL生命周期的各个环节,尤其是对安全意识、安全制度、安全规范、安全评审等的培训讲解 过程阶段:定期评估SDL过程的完备性并对随着新技术的发展和新威胁的引入提出应对措施,使用过程内指标确认过程遵从性,使用发布后指标帮助指导...SDL进行进一步的改进 响应阶段:制定完备的安全响应方案向相关各方提供项目扼要令人信服的指导,同时对响应阶段的所有数据进行存档,通过事后复盘对响应阶段的不足之处进行不断的补充和完善改进 下面是对微软SDL...安全体系建设的第一篇文章主要介绍了软件危机以及引入SDL的目的和SDL的基本流程,后续我们会将SDL的各个环节进行逐一概述,当然也欢迎各位读者一起交流,不足之处还请不吝斧正~
这就是SDL所做的事情。它将Windows/Linux/Mac/Android/iOS等工具包装起来,让你可以用SDL编写代码,然后编译到它所支持的任何平台。为了使用它,你需要安装它。...在声明我们的窗口和屏幕表面后,我们初始化SDL。在没有初始化SDL之前,你不能调用任何SDL函数。由于我们关心的只是使用SDL的视频子系统,所以我们只将SDL_INIT_VIDEO标志传递给它。...SDL_GetError 会让你知道任何 SDL 函数内部是否发生了错误。 如果SDL初始化成功,我们要使用SDL_CreateWindow创建一个窗口。...SDL_WINDOW_SHOWN确保窗口在创建时被显示。 如果出现错误,SDL_CreateWindow会返回NULL。如果没有窗口,我们要把错误打印出来到控制台。...当你完成了所有的绘制后,你需要更新窗口,使其显示出你绘制的所有内容。调用SDL_UpdateWindowSurface就可以做到这一点。
访问控制缺失以及不安全的配置等众多的因素引起的,而导致这样的安全问题发生的根本原因是由于在软件开发生命周期中缺乏对业务安全问题的考虑以及缺少对项目流程的安全控制,因此需要一个安全设计的最佳实践来指导软件项目的安全落地,所以SDL...安全设计checklist应运而生 核心原则 微软的SDL提出了若干核心的安全设计原则: Basic Privacy:基本隐私 Secure Defaults:默认安全 Threat Modeling:...威胁建模 威胁建模是一种分析应用程序威胁的过程和方法,这里的威胁是指恶意用户可能会试图利用各种手段来破坏系统,而我们常说的漏洞则是一个特定的可以被利用的威胁,例如:缓冲区溢出、SQL注入等 威胁建模作为SDL...2005/2008 xp__cmdshell 存储过程默认关闭,默认不开放远程链接 VS 2005/2008 Web Server和SQL Server默认仅本地访问 安全实践 下面是美的金融科技SDL...安全设计发布的"金融科技SDL安全设计Checklist v1.0",内容涵盖了输入验证、输出编码、身份认证、异常处理、会话管理、访问控制、接口调用、权限控制、敏感信息、运行环境、WEB安全防护:
事件处理引入 SDL , Simple DirectMedia Layer , 是 跨平台的多媒体开发库 , 用于开发 跨平台 的 多媒体应用程序 , 可开发 WIndows / Linux / MacOS...环境 , 设置要开发的子系统 ; // 初始化 SDL 环境 SDL_Init(SDL_INIT_VIDEO); 然后 , 调用 SDL_CreateWindow 函数创建窗口 ; // 创建 SDL_Window...窗口 SDL_Window* window = SDL_CreateWindow( "SDL Event Handling", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED...初始化SDL SDL_Init(SDL_INIT_VIDEO); // 2..../**< 显示事件数据 */ SDL_WindowEvent window; /**< 窗口事件数据 */ SDL_KeyboardEvent key;
SDL SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。...SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。...SDL在结构上是将不同操作系统的库再封装成相同的函数,例如SDL在Windows平台上是DirectX的封装,而在使用X11的平台上(包括Linux),SDL则是与Xlib库沟通来输出图像。...SDL 按照 API 的类型可以分为几个部分: Basics ,用于系统初始化、错误处理、日志打印等基本功能。 Video,用于窗口管理和显示、像素纹理渲染等功能。...SDL_net 用于网络相关的支持。 目前,SDL的最新版本是SDL2,它与SDL1在使用有一些不同,它支持了硬件加速等新的能力,因此我们应学习SDL2的使用。
在前面的文章中已经介绍完 SDL 显示窗口、消息循环和事件响应这些基础内容,有了这些基础就可以进行功能性开发了。 本篇的主要内容是利用 SDL 加载并显示一张图片,然后再去进行更多的音视频操作。...SDL_Image 加载 图片并显示 完成了配置之后,就可以进行 SDL_Image 的开发了,整个开发流程比较简单。...我们加载一张图片,并将图片转换成 SDL_Surface ,然后把图片对应的 SDL_Surface 转换到 SDL_Window 对应的 SDL_Surface ,再更新一下 SDL_Window 的...(pImageSurface, nullptr,pWindowSurface,nullptr); // 上屏操作,将 Surface 内容显示到屏幕上 SDL_UpdateWindowSurface...完成了 SDL 加载图片并显示的流程,整体代码比较简单,很多东西都是之前文章提到过的,反而重点更侧重于工程的 CMake 配置,有兴趣的可以看看代码。
在前面的文章中我们已经完成了 SDL 的工程配置,接下来就是 SDL 相关功能的开发。 本篇文章主要是创建一个应用程序窗口并显示。...创建 SDL 窗口 通过 SDL 中的 SDL_CreateWindow 函数就能够创建了, extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(..., SDL_WINDOW_ALLOW_HIGHDPI); 对于窗口的左上角坐标点使用 SDL 默认的宏 SDL_WINDOWPOS_CENTERED 让它居中显示就好了,flags...展示 SDL 窗口 SDL_Window 并没有什么 show 的方法,看到网上的文章应该一创建就可以显示出来了,如果出现随着程序退出,窗口一闪而过的情况加个 SDL_Delay 延时一段时间也行。...这样就创建了一个窗口,并且显示指定颜色。 销毁 SDL 窗口 最后,当退出循环时,要执行销毁操作,把创建的 SDL_Window 和 SDL_Renderer 都释放了。
SDL系列讲解(一) 简介 SDL系列讲解(二) 环境搭建 SDL系列讲解(三) 工具安装 SDL是什么,能干什么,为什么我们要学习它?...SDL系列讲解(四) demo讲解 SDL系列讲解(五) 调试c代码 前言 总是会出其不意,讲解随性一些不好吗? 只讲如何使用,明显不是我的风格,于是乎,近期会开展SDL的框架原理的系列分析。...SDL自己帮我们写了它在Android的适配工作。...这里SDL便实现了一个Activity,来完成Android的主界面的SDL实现。同时因为我们SDL本身使用的是c语言开发的,所以就需要写JNI进行搭桥,来实现JAVA和C直接的调用,数据传递。...找到对应的实现,然后会调用这些c方法,这些方法便是SDL适配的android版本。然后我们在c代码中,进行相应SDL提供的事件监测,回调方法,来进行处理事件,如此便完成了SDL的整个调用过程。
SDL系列讲解(一) 简介 SDL系列讲解(二) 环境搭建 SDL系列讲解(三) 工具安装 SDL是什么,能干什么,为什么我们要学习它?...SDL系列讲解(四) demo讲解 SDL系列讲解(五) 调试c代码 SDL系列讲解(六) SDL_Activity流程 SDL系列讲解(七) SDL_image教程 前言 讲解完了图片,这节我们来看下怎么显示文字...就是这么简单,我们便完成了字体显示。 效果 我们可以看到,左上角显示了代码GG。...抗锯齿显示字体 如果我们想要在字体缩放的时候,不要出现锯齿的现象,可以使用: TTF_RenderUTF8_Blended 系列的方法来进行加载字体。...return 1; } else { // report error return 0; } } 效果如下: 这里我们可以看到,下面显示的比上面的平滑了很多
博客源码下载 : SDL 多线程模型 代码执行效果如下 : 一、SDL 多线程简介 1、SDL 多线程引入 SDL 支持 多线程 编程 , 开发者 可以 创建多个线程 , 来执行不同的任务 , 如开启多个线程同时处理..., 编写完的 SDL 多线程代码可以在多个平台运行 ; 在 Windows 系统中 , 会生成 Windows 的多线程 模块 ; 在 Linux 系统中 , 会生成对应 Linux 的多线程 模块 ;...和 线程其它信息 ; SDL_Thread 结构体定义在 SDL_thread.h 头文件中 ; /* SDL 线程 结构体 , 定义在 SDL_thread.c 中 */ struct SDL_Thread...; typedef struct SDL_Thread SDL_Thread; SDL_Thread 提供了对线程的 基本管理和控制 功能 , 该结构体对象 是 通过 SDL_CreateThread...函数 阻塞等待指定线程结束 ; 二、SDL 多线程相关函数 1、SDL 创建线程 - SDL_CreateThread 函数 SDL_CreateThread 函数 的 作用是 创建 SDL 线程 ,
SDL系列讲解(一) 简介 SDL系列讲解(二) 环境搭建 SDL系列讲解(三) 工具安装 SDL是什么,能干什么,为什么我们要学习它?...SDL系列讲解(四) demo讲解 SDL系列讲解(五) 调试c代码 SDL系列讲解(六) SDL_Activity流程 前言 我们SDL默认支持的,只能打开BMP格式的图片。...修改成 LOCAL_SHARED_LIBRARIES := SDL2 SDL2_image 将SDL2_image库加载进来。...我们来到这个文件,修改这个包含为: #include 改为: #include <arm-linux-androideabi/ machine/cpu-features.h...因为这里查找头文件是在ndk下面的ndk-bundle\sysroot\usr\include目录进行查找,所以我们新的ndk包,发现移动到arm-linux-androideabi目录下了,所以要加这个
领取专属 10元无门槛券
手把手带您无忧上云