- 博客(112)
- 资源 (26)
- 收藏
- 关注

原创 windows下编译skia
skia是谷歌的一个开源2D引擎,用来实现利用CPU实现2D图形绘制。skia应用非常广泛,chrome、android、firefox、flutter等项目的渲染引擎都是skia。最近打算给ui库替换为skia渲染引擎,所以搞一下windows下的skia编译。以前也搞过老版本的skia编译https://blog.youkuaiyun.com/zhuhongshu/article/details/51272050,现在打算编译一个最新的skia。这次的skia编译时间为2020-12-22,SHA-1:71
2020-12-25 15:45:13
5857
8

原创 cef osr拖拽功能实现
转载请说明原出处,谢谢~~:https://blog.youkuaiyun.com/zhuhongshu/article/details/81485354cef显示web分为窗口模式和离屏渲染模式(osr,off screen rendering)。窗口模式使用起来比较简单,基本的功能都已经实现,包括web内部的拖拽。而osr模式需要实现相关接口比较麻烦窗口模式:窗口模式的拖拽控制接口只需要关心CefDragHandler。class CefDragHandler : public virtual C
2020-07-03 16:01:21
5046
2

原创 cef cookie管理
转载请说明原出处,谢谢~~:https://blog.youkuaiyun.com/zhuhongshu/article/details/81485730cef中操作CefCookieManager的对象,可以对cookie进行管理。最简单的CefCookieManager::GetGlobalManager可以得到默认的全局cookie管理器,然后对cookie进行增删改操作在cef初始化阶段,可以...
2018-08-07 18:08:01
7132
5

原创 cef合并渲染进程
转载请说明原出处,谢谢~~:https://blog.youkuaiyun.com/zhuhongshu/article/details/81485354在使用cef时,默认情况下,每打开一个页面,就会创建一个新的Render进程。随着web页面数量的增加,创建大量Render进程,而进程太多会让客户反感,而且有时候为了一些小页面去开进程是很浪费资源的其实cef是有多种开启进程策略的:可以渲染进程...
2018-08-07 17:46:03
3848
1

原创 cef对本地web资源打包加密
转载请说明原出处,谢谢~~:https://blog.youkuaiyun.com/zhuhongshu/article/details/81484159cef中最简单的打开页面方法是指定一个url或者本地路径。在使用cef开发客户端时,多数情况是写好了web页面,把web资源放到本地来使用。而js文件中很可能会暴露一些接口或者重要数据,为了保护这些数据需要把web资源加密。例如网易云音乐一类的客户端都是...
2018-08-07 17:27:38
5599
4

原创 解决cef加载flash时弹出黑框的问题
转载请说明原出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/77482985使用cef时,如果没有使用sandbox,并且开启了flash插件,在第一次使用flash时会弹出个黑框。这是flash插件的bug。目前找到三种解决办法:方法一:编译程序时加入cef_sandbox.lib静态库,自然就不会出现黑框了。但是为了加入cef_sa
2017-08-22 17:23:19
6613

原创 如何编译出cef2623中的cef_sandbox.lib静态库
转载请说明原出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/77480333之前写过一篇文章,关于编译Cef2623源码的( 在Windows下编译Cef3.2623并加入mp3、mp4支持(附带源码包和最终DLL)),已经编译出了libcef.dll。起因今天碰到个需求,需要在项目中让Cef支持flash播放,关于支持flash的方法
2017-08-22 15:01:58
7237
1

原创 Cef功能开发经验总结
转载请说明原出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/70159672这是我开发Cef功能时对踩过的坑,进行的总结,话说Cef坑真的不少。好在踩完后用起来还是挺爽的。最终的代码可以下载网易云信PC Demo点我跳转资料准备这是我集成过程中查到的一些资料,包括了Cef开发的各方面资料在调试Cef时需要Cef的pdb和源码:Cef及
2017-04-13 17:34:32
32660
4

原创 在Windows下编译Cef3.2623并加入mp3、mp4支持(附带源码包和最终DLL)
转载请说明原出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/54193842之前把离屏渲染模式的Cef3作为控件嵌入到项目窗体里。现在因为工作需要,为了得到支持mp3、mp4的cef32和64位版本,我得编译cef3的2623版本(最后一个支持xp的cef)。没编译之前就知道这是个大坑,果不其然,花了一星期才编译出来。看了不少网上的教程
2017-01-09 09:41:02
29153
10

原创 在Windows下编译多种VS版本的Skia
转载请说明原出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/51250537 这几天刚改了改Duilib,之前为了让Duilib更好的支持透明异形窗体所以把Duilib改为Gdi和Gdi+的双渲染引擎。于是想到了有时间就把渲染引擎完全独立为渲染接口,可以增加更多的渲染引擎。现在来说Skia是个很不错的渲染,之前我只是单独
2016-04-28 15:57:14
13534

原创 使用duilib开发半透明异形窗体程序(补充)
转载请说明原出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/43532791 关于半透明异形窗体的第一篇文章地址为:http://blog.youkuaiyun.com/zhuhongshu/article/details/43532791。 距离上一篇半透明窗体的博客,已经过去一年,现在这几天又对Du
2016-04-26 15:23:17
10567
5

原创 使用duilib开发半透明异形窗体程序(附源码和demo)
转载请说明原出处,谢谢~~: 半透明异形窗体的功能在之前维护的老版本的duilib里面已经有了基本的功能,但是因为一直存在较多的缺陷,所以我一直建议少用,就连我自己写仿酷狗项目也只是在几个小地方用了半透明异形窗体。不过今天在群里和其他几位朋友讨论后,发现了之前的许多问题以及解决方法。所以我立马修复了当前的库,并且写了一个半透明异形窗体的demo来测试效果。
2015-02-05 19:58:45
16143
1

原创 Redrain 通用菜单控件使用方法和说明(增加动态添加功能、附源码和demo)
转载请说明原出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/38253297 2015.1.19 Redrain
2015-01-19 23:38:33
8423
2

原创 仿酷狗音乐播放器已开源!
这是Redrain仿酷狗音乐播放器的完整代码,目的是帮助更多使用DuiLib的朋友学习这个库,如果代码有bug,或者对程序有疑问,可以联系我个人QQ或者QQ群,我经常在DuiLib QQ群活动,这个代码中包含了webkit内核浏览器、音乐播放类、菜单类、换肤功能等等。
2014-11-12 08:52:42
34967
70

原创 Redrain个人维护并使用的DuiLib和UiLib库源码下载地址
我把我自己使用的Duilib和Uilib库都上传到了GitHub,完整的Duilib库代码下载地址:点击打开链接 这是我自己使用的Duilib和Uilib库,修复了我在博客中说明的所有bug以及很多还没有去说明的bug,同样也包含别人修复过的bug。库里面包含我扩展过的部分控件。以及添加了Duilib扩展群群主heat的透明异形窗体功能的支持。 这个库是我用v
2014-11-03 14:32:25
45669
5

原创 duilib各种布局的作用,相对布局与绝对布局的的意义与用法
我使用duilib快3个月了,总体感觉duilib的使用还是较为简单的,只是刚入门时可能有些摸不清头脑。今天写一篇关于duilib的入门日志,大致说一下duilib中的各个布局的作用,以及很关键的相对布局与绝对布局的意义于用法。希望可以帮到使用duilib的新手朋友们。duilib高手就可以直接省略这篇文章了!
2014-08-13 11:46:44
37094
2
原创 c++:从单例到内存屏障
首先我们用c++写一个经典的单例:```#include <mutex>class Singleton {public: static Singleton* GetInstance() { if (!instance_) { std::lock_guard<std::mutex> lock(lock_); if (!instance_) { instance_ = ne...
2020-12-17 20:06:34
1574
原创 解决冷启动电脑后第一次读取Sqlite数据库缓慢的问题
转载请说明原出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/77482985最近项目中得到用户反馈,说每次重启电脑后,软件界面的数据加载都非常慢。这些数据都是软件启动后从Sqlite数据库读取的。我开始以为是代码有什么地方优化的不够好,出现了瓶颈,后来反复实验发现只有冷启动后第一次打开软件会出现这种情况。后来咨询网友,又查了资料,发现...
2018-05-14 14:46:28
4209
1
转载 C++对象模型
——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细 节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ Object Model虽然是一本好书,然而,书的篇幅多一些,又和具体的VC++关系小一些。因此,从篇幅和内容来看,译者认为本文是深入理解C++对象模型比较好 的
2017-06-30 13:20:53
1072
转载 Skia深入分析
原文出处:http://blog.youkuaiyun.com/hgl868/article/details/45583667一、渲染层级从渲染流程上分,Skia可分为如下三个层级:1、指令层:SkPicture、SkDeferredCanvas->SkCanvas这一层决定需要执行哪些绘图操作,绘图操作的预变换矩阵,当前裁剪区域,绘图操作产生在哪些layer上,Layer的生成与合并。2、解析层:SkBit
2017-05-08 20:57:00
5111
转载 Skia绘制代码分析
原文出处:http://blog.youkuaiyun.com/hgl868/article/details/45584187路径绘制尽管使用频率相对于图像绘制、文本绘制低,但却是非常重要的一个基本特性。所有不规则图形(椭圆、圆角矩形、三角形、简单的文字),最后都避不开路径绘制。而且,若自己实现一个2D引擎,这块内容是很具有参考意义的,用OpenGL的话,图像采样等都很少关注了,对对坐标就好。但菱角、圆弧、曲
2017-05-08 20:55:59
1981
转载 libcurl,多线程,gzip,共享DNS
转载http://hi.baidu.com/jjxiaoyan/item/e17b9ec3e31b93d4964452d8libcurl是一个不错的socket库,而且又是开源的。如果仅仅是简单的HTTP请求,那么只需要几行代码就能轻松实现。不过要用libcurl实现高效、高频率的HTTP请求就需要对libcurl有深入的了解才行。如果阅读英文无障碍的话,那么libcurl自带的示例程序和帮助文档
2017-04-28 10:22:48
1422
转载 SQLite剖析之临时文件、内存数据库
原文地址:http://www.cnblogs.com/5211314jackrose/p/5816013.html一、7种临时文件 SQLite中,一个数据库由单个磁盘文件构成,简化了SQLite的使用,因为移动或备份数据库只要拷贝单个文件即可。这也使得SQLite适合用作应用程序文件格式。但是,当在单个文件中存储一个数据库时,SQLite会在处理数据库的过程中使用许多临时文件。 S
2017-03-10 17:49:42
2386
原创 优化Duilib图片属性解析代码,提升绘制效率
转载请说明原出处,谢谢~·http://blog.youkuaiyun.com/zhuhongshu/article/details/49026605 好长时间没写duilib博客了,最近在写毕业设计,毕设的软件界面自然就用比较熟悉的Duilib来搞了,正好把Duilib的一些地方一起改改。 Duilib的图片绘制代码中有个影响性能的地方,所有的控件的图片绘制都是调用CCont
2016-04-26 08:47:41
8372
2
原创 duilib 修复 容器控件 rightbordersize和bottombordersize属性显示错误的bug
转载请说明出处,谢谢~~:http://blog.youkuaiyun.com/zhuhongshu/article/details/42265209 DuiLib的容器控件可以用bordersize统一指定边框宽度,也可以用rightbordersize、bottombordersize等属性单独指定某一个边框的宽度。但是rightbordersize、bottombord
2015-05-07 14:50:26
3137
4
原创 duilib开发基础:创建自定义控件的过程
用Duilib开发界面时,很多情况下库自带的控件不满足需求,就需要基于Duilib建立自定义控件(自绘新的控件,或者用来封装win32的子窗体,来显示视频、网页等)。 在群里经常会有刚接触Duilib的朋友问题怎
2015-04-29 11:44:23
19249
原创 让程序使用自带的字体2
转载请说明原出处,谢谢~~: 之前写过一篇博客,说明关于加载自带字体的。http://blog.youkuaiyun.com/zhuhongshu/article/details/39396223,不过后来发现使用AddFontResource函数缺点不少。主要是创建的字体不是自己程序私有的,其他程序也可以使用到。而且函数调用后会在程序目录创建一个.FOT格式的文件。后来再次翻阅MS
2015-04-29 09:57:56
3382
1
原创 入门学习duilib的要点
转载请说明原出处: 在QQ群里经常会有刚开始学习duilib的朋友加入,问到一些属性用法和布局问题。为了避免一遍一遍重复回答,今天写个入门文章,简单说一下刚开始学duilib需要注意的地方,和学习duilib的方法。 alberl写过《duilib入门简明教程》和《duilib进阶教程》,是很不错的入门教程。再搭配duilib自带的9个demo,就
2015-02-14 13:24:02
10587
1
原创 duilib 修复combo控件打开下拉菜单后不会自动定位到上次选择的位置上的bug
转载请说明原出处,谢谢: 今天群里一个网友向我反应combo控件的一个bug:单击combo控件,展开下拉菜单后,不会自动定位到上次选择的位置,而是定位到最开头的位置。 带有bug的效果图: 修复后的效果图:
2015-02-04 12:42:32
7640
1
转载 编译skia静态库时,图片解码库无法注册的问题
转载:http://www.cnblogs.com/imlucky/archive/2012/08/01/2617851.html今天编译skia库,增加图片解码库时总是无效。按照此博客的方法修改后成功,特此转载。android编译skia静态库时,图片解码库无法注册的问题经过千辛万苦将skia编译成了静态库,但是发现图片解码都不成功,后来发现是图片
2015-01-27 01:27:08
1791
转载 duilib CDateTimeUI 在Xp下的bug修复
转自:http://my.oschina.net/u/343244/blog/370131CDateTimeUI 的bug修复。修改CDateTimeWnd的HandleMessage方法?1234567891011121314
2015-01-21 16:02:50
2717
原创 duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
转载请说明原出处,谢谢~~: 今天在写项目的一个布局时,用到了最常用的相对布局属性padding:在一个纵向容器里,给其中的各个子元素设置了padding属性来做相对布局。但是出现了很奇怪的现象:容器的最后一个元素本应该在最底部,但是实际却流出了一部分空白。 实际上这个bug早在我写仿酷狗时就遇到了,当时没有很注意,就用了绝对布局去解决
2015-01-21 02:12:52
4643
原创 duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)
转载请说明原出处,谢谢: 之前我写的程序使用阴影时,一直是使用codeproject网站上的WndShadow类,并且把它当作单独的模块来使用,后来觉得使用阴影的情况非常多,所以今天就把这个类改写了一下,让他融入到duilib,并且可以直接使用xml来描述阴影,不需要写任何c++代码。 以前的WndShadow类是用算法来计算阴影,灵活性很大,
2015-01-10 09:51:16
10367
2
原创 duilib 给List表头增加百分比控制宽度的功能
转载请说明原出处,谢谢~~: 最近项目里需要用到包含表头列表,而窗体大小改变后,每个列表项的宽度不会自动改变,这样窗体变宽后列表就出现了一大片空白,非常难看。所以给列表头增加了属性,可以控制让每个列表项的宽度根据百分比来计算。这样再配合我之前写的对List控件的增强代码,就能让列表项的每列按照百分比控制宽度。 分别要给CListHeaderUI类和CL
2015-01-07 21:58:51
4800
1
原创 duilib 增加gif控件(基于gdi+,可控制播放暂停,自动设置大小)
转载请说明原出处,谢谢~~: 因为项目需要我需要给duilib增加一个gif控件,目前已经有了gif控件有很多版本,我去搜集了一些控件,但是都没有自己满意的。原uilib库中已经有GifAnim控件,但是这个控件给出的控制功能不足,不可以控制播放、暂停、停止。当控件隐藏时也不会停止播放动画,会影响效率。 于是在原GifAnim的基础上做了增强,增
2015-01-07 21:41:45
6552
1
原创 duilib 修复Text控件无法设置宽度的bug,增加自动加算宽度的属性
转载请说明原出处,谢谢~~: 今天有朋友反映CTextUI控件无法设置宽度,于是修复了这个bug,顺便给Text控件增加了一个自动计算宽度的属性,描述如下 bug出现在EstimeteSize函数,修复后的主要代码如下: SIZE CTextUI::EstimateSize(SIZE szAvailable) { RECT rc
2015-01-05 11:01:59
3358
原创 duilib 修复CTreeViewUI复选功能判断不准确的bug
转载请说明出处,谢谢~~: CTreeViewUI里面自带了复选的功能,但是复选功能存在bug: 1)当一个分组下面存在子项时,子项被手动全选后,分组的复选框没有自动变为选中状态 2)当一个分组下面存在子项时,当所有子项都取消选中状态时,分组的复选框还是选中状态
2014-12-30 14:06:05
3192
原创 duilib 修复CTreeViewUI控件动态添加子控件时,对是否显示判断不足的bug
转载请说明出处,谢谢~~: 这个bug我在仿酷狗开发日志里提到过,不过后来发现修复的不够好,后来重新修改了代码,并记录到博客。问题描述: 在仿酷狗程序中,动态添加音乐项目到播放列表里,这是必须的功能,动态添加的功能已经做好。但是我发现,当一个分组本来在收缩状态下,这是给它动态添加音乐项目就会发生很搞笑的问题:分组是收缩状态,而动态添加
2014-12-30 13:45:15
4377
duilib webkit内核浏览器控件(修复select标签bug)
2015-01-02
Redrain仿酷狗播放器完整源代码
2014-11-12
duilib IE去边框和滚动条
2014-10-23
Redrain自己正在使用的duilib和uilib库
2014-10-13
duilib 仿酷狗 QQ的动态调色板(性能调整)
2014-08-18
duilib 仿酷狗动态调色板控件
2014-08-16
duilib webkit内核浏览器控件
2014-08-13
CPopupWidget ,duilib的一个挂件类
2014-08-07
给窗体添加阴影by Redrain
2014-08-03
UISlider控件4个bug的修复patch 2014.7.28 BY:Redrain
2014-07-28
NT API说明文档
2012-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人