- 博客(10)
- 资源 (4)
- 收藏
- 关注
原创 使用C++11特性对duilib窗口类封装---CEasyBox
由于最近自己经常会接一些外包项目,外包项目的核心思想就是:改改改改,“你不懂按我说的去改就是了”,“好像也不是这样”,“再加一个页面”。。。。。要多扑街得多扑街。用MFC做的话,开始觉得没什么,但是后面压根维护不了,特别是表单数据处理的页面动则几十个控件,然后“这几项不要了”,等下又会“再加几项”。。。。。当然MFC的数据绑定的代码是自动生成,所以很多时候里面有个窍门会被忽略。因为这是讲dui
2017-07-03 01:31:06 951
原创 C++11 下的线程安全模板对象
C++11标准下我们可以更加简单地调用线程,但是线程调用就必须注意对象线程安全的问题。我们可以用智能指针简单地去解决对象线程安全问题,我尝试了解什么叫智能指针,但是最后由于脑子不够用压根不懂他在说什么鬼,所以我尝试自己写个线程安全的容器。这个线程容器使用的是C++11的一些新特性去实现的,所以不要尝试用VC6神器去编译。首先需要用到模板类而不是继承,因为使用模板才能确保我不用再去为这件
2016-08-08 20:22:56 633
翻译 学习libopus(2) Decoder解码器
来自:http://www.opus-codec.org/docs/html_api-1.1.0/group__opus__decoder.html详细说明本页描述用于解码作品的过程和功能。在解码过程也是从创建解码器开始的。可以通过这样创建:int error;OpusDecoder *dec;dec = opus_decoder_create(Fs
2015-06-23 20:01:35 6189
翻译 学习libopus(1) Encoder编码器
来自:http://www.opus-codec.org/docs/html_api-1.1.0/group__opus__encoder.html#gaefeb7dc1d6e3b59dea5ea674c86e9c18详细说明此页面描述了用于编码的使用过程和功能。因为Opus是状态编解码,进行编码前,首先需要创建一个编码器。你可以这样做:int
2015-06-23 13:42:04 7506
翻译 FFMPEG 下 H264 零时延编码
AVCodecContext *c_de;..........av_opt_set(c_de->priv_data, "preset", "ultrafast", 0);av_opt_set(c_de->priv_data, "tune", "zerolatency", 0);av_opt_set(c_de->priv_data, "x264opts","no-mbtr
2015-05-13 18:19:01 2451
原创 Duilib 改造之路 <2> 渲染效果 1 不打马赛克的世界
大约耗时:3-4小时由于开发时间等问题,duilib的渲染方式是使用GDI的方式的,这意味着渲染效果会存在一定缺陷,当我们拉伸图片的时候很容易就会出现锯齿,一些图片的显示质量差,文字出现凹槽锯齿,无论你怎么修改xml,差一两个像素就会有一堆马赛克,怎么办?使用GDI+替代GDI去瞄一下duilib的文档,duilib的所有绘制都会通过CRenderClip和CRenderEngin
2014-12-14 01:34:54 3245
原创 Duilib 改造之路 <1> 扩展标签
duilib的界面绘制大部分是根据xml文件来实现的,除了默认标签之外,它为程序员留下了一个用户自定义标签userdata,我们可以通过GetUserdata和SetUserdata来设置这个值实现数据绑定,如果需要绑定的元素很多该怎么办? leftpadding="50" rightpadding="
2014-12-14 01:02:46 1775
原创 Duilib 下关于Gif的使用
Duilib是不支持Gif,而网上也有很多方法实现,这里说的是一种更加直接的方法,不需要修改duilib的库,直接按照duilib的内部机制实现gif的显示,另一方面就是增加了资源管理类,同一个资源不会重复加载原理:通过GDI+把gif分解,得到每帧图片和间隔时间,然后通过定时器按照间隔时间触发区域刷新,最后重载控件的绘制函数,让他绘制每帧图片实现:第一步分解:
2014-12-10 15:53:08 2174
Duilib 下 Gif的使用
2014-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人