- 博客(53)
- 资源 (48)
- 收藏
- 关注
原创 Vulkan视频解码decode&显示display之同步
pFrameSynchronizationInfo->frameConsumerDoneFence和 pFrameSynchronizationInfo->frameConsumerDoneSemaphore。在ReleaseDisplayedPicture函数中消耗图片资源并且显示display完成,设置两个标志。这两个标志一旦设置为true,在QueuePictureForDecode函数中,将设置。ReleaseDisplayedPicture被。,返回后使用,同时重置两个标志为false。
2025-03-15 22:54:23
567
原创 vulkan视频解码之参考帧
从vkPicBuffBase取得picIndex,调用SetPicDpbSlot。把dpbSlot存入m_pictureToDpbSlotMap而已。
2025-03-13 10:25:38
173
原创 baidu_brpc协议格式基于protobuff
50 52 50 43 【00 01 40 48】 【00 00 00 28】 【0a 1e 0a 0e】 //PRPC+四字节长度+四字节长度。81992长度是指后面的数据长度,从【00 00 00 28.......开始,//【50 4b.......是body数据开始,body总长度为81920。我们算一下,0x00000028是meta长度,
2024-12-06 16:58:30
241
原创 centos show max&&min button and seting gnome taskbar
系统弹出窗口,在里面把最大化最小化OFF-》ON。
2024-12-04 15:18:59
363
原创 brpc butil::IOBuf
_bv- _sv- refs- [0]offset=36length = 9+ nsharedflags = 2size = 45cap = 8160+ u+[1]
2024-12-04 14:10:08
134
原创 brpc之文件上传下载,非私有协议容易被侵入,建议不使用公开协议
syntax="proto2";package example;option cc_generic_services = true;message FileUpLoadRequest { required string name = 1; repeated bytes chuncks = 2;}message FileUpLoadResponse { required int32 bytes = 1;}service FileUp { rpc UpLo
2024-12-01 16:21:55
127
原创 accept&&create socket
/添加fd的事件监听,把socket id传递给事件监听,这样才能知道到来事件是属于哪一个socket id。//in_fd包裹的socket套接字赋给options.fd。静态函数中创建Socket*并得到对应的socket_id。函数里options.fd赋给m->_fd并且添加事件监听。in_fd包裹accept返回的socket套接字。//保存参数fd套接字到Socket->_fd。//生成唯一的socket id。//返回创建的socket id。
2024-12-01 13:39:10
590
原创 窗口截图保存
void SaveWindow(HWND hwnd){ HDC hDC;// 源DC hDC = ::GetDC(hwnd);//获取屏幕DC(0为全屏,句柄则为窗口) RECT clientRect; GetClientRect(hwnd, &clientRect); int width = clientRect.right - clientRect.left; int height = clientRect.bottom - clientRect.top;
2024-11-13 20:14:47
306
原创 很复杂的UI交互操作系统Advanced-Docking-System
{//这个是鼠标右键弹出菜单Unpin的槽函数,参数false表示把一个autohide页面变成dock页面,位置默认为SideBarNone。isAutoHideFeatureEnabled())////已经启用了AutoHideFeatureEnabled。//这个是鼠标右键弹出菜单Pin to的Slots函数,参见上面的contextMenuEvent函数。{////这个是鼠标右键弹出菜单Pin to的Slots函数,参见上面的contextMenuEvent函数。
2024-10-09 22:32:18
674
原创 (转载)std::mutex && std::condition_variable
当条件不满足时,线程将对互斥量解锁,并重新等待。这就是为什么用std::unique_lock而不使用std::lock_guard的原因——等待中的线程必须在等待期间解锁互斥量,并对互斥量再次上锁,而std::lock_guard没有这么灵活。数据准备好时,使用std::lock_guard锁定队列,将准备好的数据压入队列②之后,线程会对队列中的数据上锁,并调用std::condition_variable的notify_one()成员函数,对等待的线程(如果有等待线程)进行通知③。
2024-09-22 09:43:14
1027
原创 C++11 lambda块参数传递
loop_->queueInLoop([this, pre]{//看Functor定义也可以写成 loop_->queueInLoop([this, pre](){EventPtr ev = std::make_shared(cb);//cb回调传递给Event对象。postEvent([fn](Event* ev) {//参见EventCallback定义。
2024-09-21 20:50:53
333
原创 (转载)智能指针shared_ptr从C++11到C++20
shared_ptr和动态数组 - apocelipes - 博客园 (cnblogs.com)
2024-09-21 20:15:30
285
原创 转载std::move, right reference
C++ 右值引用 std::move和std::forward的使用_c++ std::forward-优快云博客
2024-09-21 19:44:21
164
转载 brpc compile&run
最后切换到example/echo_c++目录下,make出server和client,执行查看效果。最后还要修改下Makefile文件——增加"-std=c++11"一切准备就绪,到brpc的目录下执行。protobuf是源码编译的。zlib是源码编译的。
2024-05-02 08:58:19
235
原创 安装openssl遇到的Cannot locate FindBin.pm
成功后继续cpan IPC::Cmd既可成功。1、安装perl可以解决。然后还需要安装cpan。
2024-04-21 11:59:05
433
原创 centos-stream 安装QT
/qtcreator 启动不起来,Could not load the Qt platform plugin "xcb" in "" even though it was found.
2024-04-13 07:46:34
309
原创 brpc框架真是太复杂了,第一代程序员都老了
我为啥说第一代程序员都老了,退出历史了,因为现在动不动就是json就是protobuf,还有cmd string等等,第一代程序员最早接触网络开发的,使用的都是select IOCP还有epoll,而普通使用的是TCP binary数据包,需要粘包处理,想想现在的程序员都被国外的工程师给绑架了,一点创新都没有了,都是拿来主义,pb还有mysql都是舶来品,好用是好用,但却限制了国内工程师的发展。tcp_listen创建了套接字。
2024-04-03 20:39:13
243
1
原创 关于epoll的actor设计思想
所以为了效率IO事件只需要一个线程去epoll_wait,每个service一个IO线程,或者,多个主机负责监听一个端口服务一个service,让网关进行负载均衡,这样主机群可以处理大量的accept进来,每台主机10万,10台就是100万。也看了很多关于框架的文章,但是写得乱七八糟,真正的好文章应该基于进程和线程和线程任务来说,无非就是数据的存储和处理,这就涉及到结构和线程,线程多少个,都是什么线程,处理那些任务,线程间通信,如何并发安全,等等。网络上经常写文章的大部分都是菜鸟,大佬都忙得很,哪有空写。
2024-04-03 18:30:19
165
原创 从libevent的spserver到skynet库的感想
再说说skynet把,sky net好多了,但是风云这家伙就是游戏迷,只能用lua搞游戏,要想写逻辑,那还得用lua,很明显作为一个C++工程师,我不接受,我懒得学呢,有时间的话我会把skynet的消息队列机制全部移除了,自己写一个多线程并发网络框架。sp使用libevent,spserver不行,太差劲了,连多线程处理消息队列都没有,就是个串行的执行器,而且处理任务频繁唤醒睡眠线程,导致开销极大,做得很差。
2024-04-01 22:37:26
171
原创 skynet消息队列一文搞定
/skynet_message消息队列(其实是一个数组通过queue[序号]从队列中获取指定的消息)//与其他消息队列的关联(非空表示在全局消息队列中)//队列是否已被释放表示(0为未释放,1为已释放)//消息队列所属服务的句柄(用于消息处理)不难看出来,全局消息队列看起来像是一个。//是否存入全局消息队列标志。,每个节点都带着一个。
2024-04-01 08:22:47
776
原创 QTableWidgetItem setText并无效果
那就使用Item = new QTableWidgetItem(strText);在使用QTableWidget有时候遇到setText没有起作用,不知道Item->setText(strText)为什么没有效果。
2023-01-14 09:17:51
704
原创 setIndexWidget
setIndexWidget是个好东西,但很多时候有问题,今天就遇到一个,因为表格行高太高了,有23,而createEditorContainer(i)的高度是20,所以看到表格中有一个Edit的框,于是干脆把Edit的框去掉,no border了,完美解决因为Edit框高度与表格高度不一样导致在表格列中看到框线。
2023-01-13 14:31:14
592
原创 QTableWidget不要用QModelIndex做QMap的key
看到csdn上很多这样搞的,这样做会导致bug,因为当你删除中间的任意一行,那么你选中的那行的QModelIndex里面row会减减,这样QMap去contains就是找到了你选中的那行的下面那一行了,这样就bug了。
2023-01-11 16:22:37
191
原创 conan管理visualstudio依赖包
conan profile remove settings.compiler.libcxx default //这个就是不要配置libcxx,如果在Windows平台会出错。conan config set settings.compiler.cppstd=20 //使用c++20编译。
2023-01-03 15:48:39
324
策略为王vs2019已经编译好.rar
2020-04-19
更新IOCP_Socket
2012-04-06
Intel(Intel_ 64 and IA-32 Architectures Optimization Reference Manual下载失败)
2009-05-08
Intel_ 64 and IA-32 Architectures Software Developer's Manual Volume 2B_ Instruction Set Reference, N-Z
2009-05-08
无边框widget可定制标题栏
2022-11-02
Qt-Frameless-Window-DarkStyle-master.zip
2020-11-29
复权算法说明.rar
2020-07-18
除权数据处理.zip
2020-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人