sdl

How do I use accented characters in the window title in SDL2?

寵の児 提交于 2020-07-08 14:55:29
问题 SDL_Window* window = SDL_CreateWindow( "Capítulo 1", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN ); The displayed title is Cap?tulo 1 回答1: I run into the same problem in Windows with Japanese letters. Using UTF-8 string literals works for me: SDL_Window* window = SDL_CreateWindow( u8"Capítulo 1", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN ); 来源: https://stackoverflow.com/questions/53741550/how-do-i-use-accented-characters-in-the

undefined reference to SDL_Init

假如想象 提交于 2020-07-06 12:58:33
问题 I started using SDL today and had some trouble before, now I got it running but it won't let me init it. This is my code: #include <iostream> #include "SDL.h" #undef main using namespace std; int main(){ if(SDL_Init(SDL_INIT_EVERYTHING)<0){ cout << "error starting sdl" << endl; } return 0; } This the build log: -------------- Build: Debug in Graphics (compiler: GNU GCC Compiler)--------------- mingw32-g++.exe -Wall -g -std=c++11 -IC:\Users\73638G75MA\Documents\SDL2-2.0.3\x86_64-w64-mingw32

Why is SDL so much slower on Mac than Linux?

懵懂的女人 提交于 2020-06-27 08:53:05
问题 I am working on a single-threaded graphical program that renders using SDL2. See the end for a smaller example. It runs on both an old Linux machine and a somewhat less old Mac. The Linux computer has 1.60GHz processors while the Mac's processors are 2.2GHz. The SDL version on Linux is 2.0.8, while the SDL version of the Mac is 2.0.10. On both computers I compiled with clang++ using optimization flags -O3 and -flto . I invoked the executable with ./intergrid -fullscreen -pixel-size 3

C++ SDL2, How to regularly update a renderered text? (ttf)

偶尔善良 提交于 2020-05-27 06:54:18
问题 So I've been practicing/making a quick game for the past 6 hours, then something stumped me. The game had an integer, Score, which would be added up with one every time an ammo hits an alien. int Score; stringstream sstr; sstr << Score; string str1 = sstr.str(); TTF_Font* Sans = NULL; Sans = TTF_OpenFont("Sans.ttf", 24); SDL_Color White = {255, 255, 255}; SDL_Surface* surfaceMessage = NULL; surfaceMessage = TTF_RenderText_Solid(Sans, str1.c_str(), White); SDL_Texture* Message = NULL; Message

C++ SDL2, How to regularly update a renderered text? (ttf)

扶醉桌前 提交于 2020-05-27 06:53:05
问题 So I've been practicing/making a quick game for the past 6 hours, then something stumped me. The game had an integer, Score, which would be added up with one every time an ammo hits an alien. int Score; stringstream sstr; sstr << Score; string str1 = sstr.str(); TTF_Font* Sans = NULL; Sans = TTF_OpenFont("Sans.ttf", 24); SDL_Color White = {255, 255, 255}; SDL_Surface* surfaceMessage = NULL; surfaceMessage = TTF_RenderText_Solid(Sans, str1.c_str(), White); SDL_Texture* Message = NULL; Message

Ubuntu 18.04 手动编译安装 ffmpeg

自闭症网瘾萝莉.ら 提交于 2020-05-08 20:28:52
  ffmpeg 是一个由提供对视频、音频和其他多媒体流文件进行处理功能的库和程序构成的自由软件项目,其常被用于适用于不同格式的音频和视频的录影、转换和流处理等场合。这里记录在 Ubuntu 18.04 平台下安装 ffmpeg 的过程。( 注:ffmpeg 目前已经可以通过 apt 直接进行安装,见最后 ) 安装过程   a.在 ffmpeg 官网上下载对应的安装压缩包,笔者使用的是 ffmpeg-4.1.tar.bz2 ,将其解压至用户主目录下。 tar -xvjf ffmpeg-4.1.tar.bz2 -C ~ //将文件解压缩至用户主目录   b.简单的安装过程在解压获得的 ffmpeg-4.1 目录中的 INSTALL.md 文件中有一定的描述,首先对编译安装环境进行配置。 ./configure //检测当前的编译安装环境   此时可能会产生报错 " nasm/yasm not found or too old " ,这是由于 ffmpeg 中部分优化代码使用汇编编写,对应的编译过程需要使用汇编编译器,这里有两种选择,一种是在 ./configure 时使用 --disable-yasm 选项,最终获得是一个裁剪版本的 ffmpeg 工具集;另外一种是安装对应的汇编编译器,可使用下列命令进行安装。 sudo apt install yasm //安装 yasm 编译器

在Visual Studio中使用scanf语句

雨燕双飞 提交于 2020-05-05 21:53:25
#在Visual Studio中使用scanf语句 ##一.问题 在使用代码处理控制台输入的时候,会遇到一些输入问题。 C++中的cin与C中的scanf处理输入的时候,略有不同。 例如: 输入数据样例: 这道题我的思路是将输入的样例保存到一个数组中,判断数组结尾的最后两个字符为"."和回车结束输入,最开始使用cin<<str[i]会发生段错误,cin不接受回车,无法结束输入,只能考虑scanf scanf可以很好地读到回车并使循环结束。 但是scanf直接在未调试的VS上编译的话,系统会报错,因为scanf在c++中不安全,像这样: 那如何在VS中使用scanf呢? ##二.解决方法 鼠标右击项目---->属性---->点击c/c++---->找到SDL检查改为否 改完之后就可以正常运行了: PS:VS是2017以上的版本才出现scanf报错这个问题 ##三.结论 1.在Visual Studio中使用scanf语句需修改sdl; 2.在Visual Studio中使用cin则不会碰到scanf所遇见的问题; 使用cin的解决方案如下: 先定义一个string s,使用while循环读入每一行的数据,每一行以回车结束,直到最后一行输入'.'循环结束。 样例: while (cin >> s && s != '.'){...} ,每次循环处理每一行的数据。 可以看出

CentOS6.x操作系统自带的 DM Multipath(DMMP)多路径软件配置说明。

柔情痞子 提交于 2020-04-25 19:59:09
CentOS系统下的多路径软件是操作系统自带的 DM Multipath(DMMP)工具。 ------------------------------------------------------------------------------------------------------------------ DM-Multipath 组件介绍: dm-multipath : 内核模块 为路径和路径组群重新指定 I/O 并支持出错冗余。 mpathconf: 程序 配置并启用设备映射器多路径 multipath: 命令 列出并配置 multipath 设备。通常使用 /etc/rc.sysinit 启动,还可以在添加块设备时使用 udev 程序启动。 multipathd: 守护进程 监视器路径,如果路径故障并返回,它可能会启动路径组群切换。可为多路径设备提供互动修改。 对 /etc/multipath.conf 文件的任何修改都必须启动它。 kpartx: 命令 为设备中的分区生成设备映射器设备。这个命令对带 DM-MP 的 DOS 分区 是很必要的。kpartx 在其自身软件包中就存在,但 devicemapper-multipath 软件包要依赖它。 ----------------------------------------------------------

Qt开源作品1-视频流播放ffmpeg内核

你离开我真会死。 提交于 2020-04-24 16:04:11
一、前言 好久以前就写过这个工具,后来因为Qt版本的不断升级以及ffmpeg也经历过好多次的迭代,可能从官网下载的ffmpeg搭配原来的代码不能正确编译,因为很多api已经变了,所以这次特意抽空全部整理重写一遍,只求最精简最好用,同时兼容了ffmpeg3和ffmpeg4,并且同时支持32位的库和64位的库,这样任何小白拿过去直接编译就能用。 多线程实时绘制 同时解码视频流和音频流 支持任意Qt版本任意系统任意编译器 解码和窗体分离,拓展性强 可选ffmpeg3和ffmpeg4两个版本 可选32位和64位的ffmpeg库 注释绝对详细,包你满意 二、代码思路 第一步:引入ffmpeg的头文件 //必须加以下内容,否则编译不能通过,为了兼容C和C99标准 #ifndef INT64_C #define INT64_C #define UINT64_C #endif //引入ffmpeg头文件 extern "C" { #include "libavutil/opt.h" #include "libavutil/time.h" #include "libavutil/frame.h" #include "libavutil/pixdesc.h" #include "libavutil/avassert.h" #include "libavutil/imgutils.h" #include

Qt视频显示类QVideoWidget的使用说明与代码演示

 ̄綄美尐妖づ 提交于 2020-04-22 13:41:40
先简要说明下视频显示,视频文件想在电脑屏幕上显示,需要承载在UI控件上,例如MFC,可以用Picture控件,C#可以用PictureBox, Qt可以用QOpenGLWidget等,不同的UI库,实现方法不同。当然这只是像素的展示,还涉及到音视频编解码,同步等。这些,UI库可能就做不到了,需要借助第三方库,例如大名鼎鼎的FFmpeg, SDL,DirectX等。 最近做项目时,大部分用的FFmpeg解码,再在控件上显示,突然想到了,能不能用Qt呢,毕竟只是显示视频,没有其他的要求,视频操作的部分用FFmpeg。查找Qt助手后,发现还真的可以。 Qt,让C++程序员变得更轻松,封装了很多方法,直接调用即可,视频编解码都可以用Qt自身完成,本篇博客介绍Qt的视频显示类QVideoWidget的用法。先看看Qt助手关于QVideoWidget的说明: The [QVideoWidget](qvideowidget.html) class provides a widget which presents video produced by a media object. 并且提供了示例代码: player = new QMediaPlayer; playlist = new QMediaPlaylist(player); playlist->addMedia(QUrl("http:/