- 博客(37)
- 收藏
- 关注
原创 C++ std::variant 总结
return 0;输出如下:1010.3Aborted写入浮点数后再访问整数类型成员, 直接抛出了异常, 这提供了一个类型安全的保证。除此之外, 它能自动维护C++ 当中的复杂类型,也就是构造和析构函数的调用。return 0;1010.3。
2024-04-26 23:33:25 1255
原创 C++性能优化实践 三
首先需要知道的是, 多线程加锁和数据竞争是性能杀手。①能用 std::atomic 原子类型就不要使用 std::mutex;②如果多线程读比写多很多时, 优先考虑使用读写锁 std::shared_mutex, 其他情况还是使用 std::mutex;③考虑使用 thread_local 变量, 这个相当于不需要加锁的全局变量, 当线程第一次访问的时候对象才会被创建, 线程退出时对象就会被销毁;④能用标准库里面的高级接口就不要自己写, 比如 std::future, std::async等;
2024-04-26 23:31:06 967 3
原创 C++ Idiom - Return Type Resolver (返回类型自动解析)
C++ 习语之返回类型解析。Return Type Resolver
2023-01-20 14:39:19 163
原创 C++智能指针 shared_ptr 模仿实现
C++ shared_ptr智能指针模仿实现部分功能,包括自定义析构器,线程安全的引用计数以及一些其他常规的操作
2022-12-10 21:24:19 288
原创 OpenGL渲染YUV420P
一 、YUV420P数据格式二 、GLFW渲染YUV420P2.1 定义顶点数据2.2 创建YUV三张纹理2.3上行YUV420数据2.4 渲染纹理2.5 着色器三、代码地址以及存在的问题四 、解决存在的问题一 、YUV420P数据格式 图片来源于谷歌结合上图可以看出YUV420P的特点如下:①无论在横向还是纵向上都是两个亮度(Y)共享一组色度(UV),所以UV的宽度和高度都是Y的1/2②在内存中有三片数据,也就是三个数据指针分别指向Y、U、V ffmpeg中av.
2022-05-21 22:18:20 2290 4
原创 Windows下编译ffmpeg的几种方式
ffmpeg编译好的库可以直接通过官网下载,地址为 http://ffmpeg.org/download.html#build-windows, 但是平时在调试相关的代码时总是希望通过单步调试进ffmpeg的接口函数看一下其内部的实现方式,通过官网直接下载编译好的因为没有相关符号文件而无法实现这一愿望,所以只好自己编译啦,这里介绍两种常见的方式。ffmpeg的源码直接在 github 下载可以这里写目录标题1. 通过msys2安装1.1 使用MinGW编译1.2 使用 msvc 编译2. 通过vcpkg安
2021-10-10 21:29:30 12406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人