自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (41)
  • 收藏
  • 关注

原创 GDB调试线程局部变量(thread_local)

GDB调试线程局部存储 thread_local

2022-06-23 16:22:29 1504 1

原创 GDB的Pretty Printer功能

做了多年的Windows平台开发,突然转到Linux开发,感觉非常的难受,我相信不仅仅是笔者,一般人都会觉得水土不服,毕竟Windows平台的Visual Studio实在是强大了,惯坏了大部分Windows开发人员。因此选一个强大的IDE对初始阶段的Linux开发还是很有好处的,可以帮助我们平稳过度到Linux。索性,Visual Studio还有一个小兄弟VSCode,一个轻量级的IED,各种方便的功能由插件提供,极大的方便了我们的开发。在此,以C++语言为例,笔者分享一点心得。装完VSCode之后,

2022-06-19 00:16:13 1761 1

原创 C++11实现的简单定时器

class SimpleTimer{public: SimpleTimer() { } ~SimpleTimer() { m_bStop = true; if (m_pThread) { m_pThread->join(); delete m_pThread; } } unsigned int Interval() const { return m_uiMsecInterval; } void Interval(unsigned int ui

2021-10-11 17:01:32 200

原创 ElasticSearch环境简单搭建

ElasticSearch环境简单搭建本文以7.10.2为例,其他版本应该也差不多。平台为windows,至于linux,配置应该是一样。至于下载,此处不作赘述。另外老版本的ElasticSearch安装包里面是不带JDK,需要自己安装JDK,但是从不知道从那个版本开始,已经自带JDK,所以解压即可使用。解压一个自己想放入的位置例如:D:\elasticsearch-7.10.2如果要启用用户名密码认证,则修改config目录下的elasticsearch.yml文件,再末尾添加如下配置:

2021-09-02 16:49:28 131

原创 OracleSpatial数据存储过程

OracleSpatial数据存储OracleSpatial空间数据类型如下:valueGeometry TypeDescriptionDL00UNKNOWN_GEOMETRYSpatial and Graph ignores this geometry.DL01POINTGeometry contains one point.DL02LINE or CURVEGeometry contains one line string that can contai

2021-08-31 10:12:37 264

原创 二次贝塞尔曲线转换为三次贝塞尔曲线

二次贝塞尔曲线转换为三次贝塞尔曲线在使用cairo绘图的时候,发现cairo不支持二次贝塞尔曲线的绘制,为了与QT实现的canvas的行为一致,cairo必须同样实现二次贝塞尔曲线的绘制。思路是将二次转换成三次,然后用3次的方式绘制。二次贝塞尔曲线公式Q(t) = Q0 (1-t)² + 2 Q1 (1-t) t + Q2 t²三次贝塞尔曲线公式Q(t) = Q0 (1-t)² + 2 Q1 (1-t) t + Q2 t²公式推导过程将二次贝塞尔曲线转换成三次贝塞尔曲线,必须要让这两个多项式相

2021-01-14 18:14:00 1170

原创 postgresql序列的使用

创建:方法1:直接在表中指定字段类型为serial 类型create table tbl_xulie (id serial, name text);方法2:先创建序列名称,然后在新建的表中列属性指定序列就可以了,该列需int 类型CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalu

2020-06-03 09:11:15 932

原创 cairo裁剪使用分析

cairo_arc (cr, 128.0, 128.0, 76.8, 0, 2 * M_PI);cairo_clip (cr);cairo_new_path (cr); /* current path is not consumed by cairo_clip() */cairo_rectangle (cr, 0, 0, 256, 256);cairo_fill (cr);一步一步分析:1、cairo_arc其实只是在cairo_t里面.

2020-05-22 14:41:05 1045

原创 Vulkan Tutorial 9 描述符集合

在上一节定义了一个描述符集合布局,但是并没有实际创建。描述符集合用于告诉GPU,uniform buffer是如何映射到着色器程序的uniform变量。本节介绍描述符集合的创建和初始化。描述符池与明亮缓冲类似,描述符集合也是冲池里面创建的,所以必须先创建一个池。对于一个uniform buffer,只需要一个描述符集合,因此创建一个池非常简单:VkDescriptorPoolSize...

2019-01-29 17:54:54 319

原创 Vulkan Tutorial 8 管道布局

描述符集合布局与管道布局创建完Uniform Buffer后,接下来就是要告诉着色器如何使用。程序员知道Uniform Buffer里面存储的是MVP数据,以及MVP数据会被顶点着色器使用,但是Vulkan目前还不知道。这些都是通过描述符告诉Vulkan的。描述符与描述符集合描述符是一个特殊的不透明着色器变量,着色器使用它以间接的方式访问缓冲区和图像资源。描述符可以被看做是一个纸箱资源...

2019-01-14 16:28:03 385

原创 Vulkan Tutorial 7 创建Uniform Buffer

Uniform Buffer可以以只读方式访问着色器,以便着色器可以读取常量参数数据。在Vulkan里面,程序员必须自己创建Uniform Buffer,在其他API里面则不需要。设置Uniform数据程序可使用Uniform缓冲将MVP(Model-View-Projection)矩阵传入着色器,着色器通过MVP数据对每一个顶点进行变换。info.Projection = gl...

2019-01-09 16:55:08 641

原创 Vulkan Tutorial 6 创建深度缓冲

深度缓冲是可选的,如果要绘制3D图形,可使用深度缓冲。即使交换链以后多个图像,也只需要一个深度缓冲,因为深度缓冲在绘制交换链的每个图片时,深度缓冲是可重用的。与交换链不同,交换链是Vulkan创建内存,深度缓冲必须自己分配图片的内存来作为深度缓冲。步骤如下:创建深度缓冲图像对象 申请深度缓冲设备内存 将内存绑定到图像对象 创建深度缓冲图像视图创建深度缓冲图像对象创建深度...

2018-12-18 18:03:50 451

原创 Vulkan Tutorial 5 创建交换链

交换链是图片的列表。其中一个图片在前台显示,其他图片在后台。Vulkan的绘制会在后台图片上进行一些列的绘制操作,直到绘制完成,然后交换前台图片和绘制完成的后台图片。此时,当前后台图片成为前台图片,当前前台图片成为后台图片。交换链如下所示: Vulkan和视窗系统与其他图形API一样,Vulkan也将视窗系统与核心图形API分离。在Vulkan中,窗口系统...

2018-12-18 15:48:04 539

原创 Vulkan Tutorial 4 创建命令缓冲区

基本命令缓冲区操作OpenGL里面设置线宽的时候,是通过调用glLineWidth()。如下图所示,驱动程序将这个API调用转换为特定于GPU的指令,并且放入命令缓冲区。驱动程序负责管理这个缓冲区的创建和销毁,并且负责将命令缓冲发送给GPU去处理缓冲里面指令,应用程序不需要关心这些操作。在Vulkan里面,调用vkCmdSetLineWidth()来设置线宽。此函数实际上是新增一个指令到命...

2018-12-12 18:06:34 402

原创 Vulkan Tutorial 3 创建逻辑设备

Vulkan逻辑设备其实就对应一个相应的物理设备。逻辑设备用于向硬件设备发送绘制指令。因为我的电脑目前只有一个物理设备,同时为了简单起见,gpus指定第0个元素。设备队列和队列族Vulkan将设备队列暴露给外部,因此,程序员可知道目前哪些队列正在使用,哪些类型的队列正在被使用。这点跟其他图形api不一样。因此程序员可以更灵活的控制。队列是向硬件提交指令的抽象概念。Vulkan将...

2018-12-12 13:42:49 315 3

原创 Vulkan Tutorial 2 枚举物理设备

创建完Vulkan实例后,需要查找当前可用的硬件设备,其实就是GPU之类的一些图形设备。而一旦创建Vulkan实例,Vulkan就知道有些什么可用的设备。所以,可调用Vulkan的vkEnumeratePhysicalDevices获取设备。设备和Vulkan的关系类似以下方式: ...

2018-12-10 17:38:04 356

原创 Vulkan Tutorial 1 创建vulkan实例

在使用vulkan做任何操作之前,首先需要创建一个vulkan的vkInstance实例。下图为vulkan的基本架构:上图显示,应用程序被链接到一个称为Loader的vulkan库。Loader也会加载和初始化低级图形驱动程序。同样,layer也会通过Loader被加载到应用程序。Layer一般用来验证驱动程序执行的错误。正是因为vulkan将错误验证功能交给layer,所以vulk...

2018-12-07 18:06:19 729

原创 Vulkan Tutorial 0 vulkan学习笔记 写在前面

目前在一家公司走内核开发,整个内核框架涉及到数据的读取,空间变换,显示这些东西。最近突然萌生了一种想要给内核扩展一下显示能力集。目前市面上主要是OpenGL/DirectX/Vulkan。之所以选择Vulkan,主要是因为内核需要跨平台,因此DX被排除。OpenGL据说在多线程上有天生的缺陷,因此也被排除。所以,最终选择Vulkan。本来想买一个本书看看,但是目前市面上好像没有中文版的教程,能...

2018-12-07 15:48:34 458

原创 jpeg图片的exif信息

EXIF(Exchangeable Image File)是“可交换图像文件”的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数、缩略图及其他属性信息。exif其实是jpeg文件的一种,遵从jpeg标准,只是在文件头信息中增加了有关拍摄信息的内容和索引图。 JEPG文件头必须以0xFF 0xD8开头,0xFF 0xD9结尾。然后后

2017-02-27 15:47:46 2870

原创 H264帧内编码与帧间编码

晚上没事干,无聊,所以想写点什么。为了达到节约空间的目的,视频图像都是经过编码,然后用于各种不同的场合,特别是网络传输,因为带宽的限制,为了更好的传输数据,必须对视频进行压缩处理。而目前最流行的当属H264了。经过H264压缩的视频,可分为I、B、P三种不同的帧。其中I帧因为不参考其他帧,所以是帧内编码。P帧,要前向参考,而B帧,则要进行双向参考,这两种,都属于帧间编码。先说说帧内编码...

2017-02-13 19:14:50 14276

FFmpegBasics

讲解ffmpeg的各种命令

2016-11-07

RTP RFC3551

想了解RTP的可以看看

2016-11-04

h264中文标准 超高清 带书签

h264中文标准 超高清 带书签 文字可复制 想学习H264标准的朋友可以学习一下

2016-11-02

新一代压缩编码技术 超高清

新一代压缩编码技术 超高清 文字可复制 想要了解压缩编码技术的朋友可以学习一下

2016-11-02

h264中文标准 超高清

h264中文标准 超高清 并且文字可复制的那种 想要学习H264标准的朋友可以看看

2016-11-02

MongoDB权威指南第2版

MongoDB如何帮你管理通过Web应用收集的海量数据呢?通过本书的权威解读,你会了解面向文档数据库的诸多优点,会发现MongoDB如此稳定、性能优越甚至能够无限水平扩展背后的原因。 本书的两位作者均来自开发并支持开源数据库MongoDB的公司10gen。数据库开发人员可将此书作为参考指南,系统管理员可以从本书中找到高级配置技巧,其他用户可以了解一些基本概念和用例。你会发现,将数据组织成自包含的JSON风格的文档比组织成关系型数据库中的记录要容易得多

2016-10-27

RTP协议英文版

RTP英文版,方便各位与中文版对照

2016-10-24

RTP协议中文版

RTP协议,中文版,方便大家熟悉RTP协议

2016-10-24

RTSP英文版

英文版,有时候看中文版的翻译的不是很清楚,可以对照英文的看

2016-10-24

rtmp规范翻译1.0 超清晰

RTMP协议规范,有兴趣的可以看看

2016-10-20

RTSP中文版 超清晰

RTSP中文版,具体的也不说了,反正0分,自己看

2016-10-20

live555 2016.10.11

最新的Live555 已经整合成VS工程,方便阅读调试

2016-10-13

深入浅出数字信号处理 高清版

本书的主要读者对象是从事数字信号处理相关工作的工程师,也非常适合作为高等院校电子、通信、计算机、自动控制等专业“数字信号处理”课程的教材和参考书,本身还可作为想利用数字信号处理这个强大工具的科研人员的参考书

2016-10-13

小波基础及应用教程

本书主要介绍小波的一些知识,并且非常清晰

2016-10-13

深入理解C++11:C++11新特性解析与应用 高清目录

全书都在深入讲解C++11标准的新特性 不管是新手还是老手,在理解本书以后,都会对C++11特性有一个深入的理解,并且能够熟练应用

2016-07-18

C++程序设计语言

C++之父的经典之作,是有关于C++语言的第一部巨著,在C++领域有着无可替代的地位

2013-03-06

深入解析MFC

想MFC的朋友,这是一本好书。值得一看。上传与大家共同学习。

2013-01-26

oracle-call-interface-programmers-guide19.pdf

OCI开发文档

2022-01-14

vulkan中文教程

vulkan在国内几乎没有什么资料可以参考,本着分享的想法,为广大想要学习vulkan的道友们提供一点帮助,拿走不谢 声明,这不是本人自己翻译的,也是从别人那里下载的

2019-03-22

H265协议规范

H265标准协议

2017-07-05

H265协议标准文档

H265协议标准,英文版

2017-07-05

Vulkan说明书

Vulkan是最新的图形标准

2017-03-06

深入理解OpenCV 实用计算机视觉项目解析

深入理解OpenCV 实用计算机视觉项目解析

2017-03-06

学习OpenCV(中文高清版)

学习OpenCV(中文高清版)

2017-03-06

流媒体技术入门与提高

想进入流媒体领域,可以看看这本书,讲的比较全面

2017-02-09

GStreamer中文开发手册

GStreamer是一个开源跨平台的流媒体框架,目前国内用的人比较少,新手可以先看看本文档,对照着官网文档

2017-01-13

Direct12龙书

DX12龙书

2017-01-10

PowerShell 3.0进阶教程

PowerShell 3.0进阶教程 windows上的shell

2017-01-10

PowerShell 3.0入门教程 超清晰

PowerShell 3.0入门教程 windows上的shell

2017-01-10

Linux Shell脚本攻略(中文第2版)超高清 带书签 文字可复制

Linux Shell脚本攻略(第2版)超高清 带书签 文字可复制

2016-12-29

蒋鑫Git权威指南带书签完整版

git是现在流行的分布式项目管理工具,本书深入讲解了如何使用git管理项目

2016-12-03

rtmp协议规范 中文版

rtmp协议规范,中文版,英文不好的,可以对照英文看

2016-11-28

Nginx开发从入门到精通【pdf】版 超清晰

Nginx开发从入门到精通【pdf】版 想学习的可以看看,超清晰,文字可复制

2016-11-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除