草庐IT

缓冲池

全部标签

c++ - OpenGL:顶点索引缓冲区的问题

我刚开始使用VBO,除了顶点索引缓冲区外,一切似乎都很好。如果我在启用索引缓冲区后调用glDrawElements,我会收到访问冲突错误(找不到索引),如果我只是用指向内存中索引数组开头的指针调用它,它就可以工作..//DOESN'TWORKglBindBuffer(GL_ELEMENT_ARRAY_BUFFER,indices);glDrawElements(GL_TRIANGLES,stripIndices.size(),GL_UNSIGNED_INT,0);//WORKSglDrawElements(GL_TRIANGLES,stripIndices.size(),GL_UNSI

c++ - cvQueryFrame 是否预先有帧缓冲区?

如果我这样做:while(1){//retrieveimagefromthecamerawebCamImage=cvQueryFrame(camera)//where'camera'iscvCreateCameraCapture(0)//dosomeheavyprocessingontheimagethatmaytakearoundhalfasecondfuncA()}现在,当我进行连续迭代时,webCamImage似乎滞后了!即使我移动相机,webCamImage也需要很长时间才能更新到新的视野,并且它会不断显示和处理以前的视野相机帧。我假设cvQuery有一些缓冲区可以检索帧。你能

c++ - 为什么 boost::asio::read 缓冲区数据大小小于读取大小?

我有一个简单的文件传输应用程序,每次写入从客户端传输4096字节。在服务器端,我使用以下调用读取tempLen=boost::asio::read(l_Socket,boost::asio::buffer(buf,bufSize),boost::asio::transfer_all(),错误);templen是1440字节,但是我读buf的时候只有11字节。复制粘贴下面的服务器代码。我已经尝试了socket.read_some和asio::read-都以相同的结果结束。有人可以解释我在这里做错了什么吗?//boost::arraybuf;char*buf=newchar[4096];c

c++ - 将数据读入循环缓冲区

是否可以将boost::circular_buffer与boost::asio一起使用?具体来说,我想用boost::asio::async_write读取固定数量的字节,并将它们直接存储在循环缓冲区中而不进行复制。一些示例代码会非常好! 最佳答案 截至目前(Boost1.66),无法将数据读到boost::circular_buffer中,因为它没有公开任何方法来保留空间底层缓冲区,这是创建调用asio::read所需的mutable_buffer的要求。但是可以从boost::circular_buffer写入:boost::c

【Linux取经路】文件系统之缓冲区

文章目录一、先看现象二、用户缓冲区的引入三、用户缓冲区的刷新策略四、为什么要有用户缓冲区五、现象解释六、结语一、先看现象#include#include#includeintmain(){constchar*fstr="Hellofwrite\n";constchar*str="Hellowrite\n";printf("Helloprintf\n");fprintf(stdout,"Hellofprintf\n");fwrite(fstr,strlen(fstr),1,stdout);//返回值是写入成功的快数write(1,str,strlen(str));//返回值是写入成功的字节数//

c++ - 空(白色)帧缓冲区 - 阴影贴图

请参阅编辑,因为问题的第一部分已解决。我正在尝试从http://learnopengl.com/#!Advanced-Lighting/Shadows/Shadow-Mapping复制阴影贴图演示使用我自己的框架,但有趣的是我没有得到任何阴影。第一个重大问题是我的深度图无法正常工作。我已经调试并仔细检查了每一行但没有成功。也许另一双眼睛会有更多的成功。参见(左上角,第5行-图像是全白的):我将写下第二个渲染过程,因为第一个渲染过程似乎不起作用。顺便说一句,对象以0,0,0为中心。以下代码用于第一个渲染过程:///1.rendertargetisthedepthmapglViewport

c++ - OpenGL 更新顶点数组/缓冲区

当我第一次向缓冲区添加一些顶点时,这些是我正在调用的相关函数//Createandbindtheobject'sVertexArrayObject:glGenVertexArrays(1,&_vao);glBindVertexArray(_vao);//CreateandloadvertexdataintoaVertexBufferObject:glGenBuffers(1,&_vbo);glBindBuffer(GL_ARRAY_BUFFER,_vbo);glBufferData(GL_ARRAY_BUFFER,vertices.size()*sizeof(float),&verti

套接字的多种可选项(修改IO缓冲区大小及TCP_NODELAY)

标题套接字的多种可选项我们进行套接字编程时往往只关注数据通信,而忽略了套接字具有的不同特性。但是,理解这些特性并根据实际需要进行更改也十分重要。从上表可以看出,套接字可选项是分层的。IPPROTOIP层可选项是IP协议相关事项,IPPROTO_TCP层可选项是TCP协议相关的事项,SOL_SOCKET层是套接字相关的通用可选项。我们几乎可以针对上表中的所有可选项进行读取(Get)和设置(Set)(当然,有些可选项只能进行一种操作)。可选项的读取和设置通过如下2个函数完成。#include#includeintgetsockopt(intsock,intlevel,intoptname,void

c++ - 在缓冲区溢出时自动截断和 null 终止字符串缓冲区

我有以下代码,可以从指定父窗口的所有子窗口加载文本。它工作正常,但有时,有一些父窗口(例如用很长的C++源文件打开的记事本)有大量文本并导致缓冲区溢出。BOOLCALLBACKEnumChildProc(__inHWNDhWnd,__inLPARAMlParam){LRESULTTEXT_LENGTH=NULL;WCHARszText[32767];LPWSTRszWindowText;UINTnBuffer=NULL,nText=NULL;szWindowText=reinterpret_cast(lParam);szText[0]=L'\0';nBuffer=(UINT)wcsle

具有 4 字节对齐缓冲区的 C++ `std::string` 类容器

我需要一个C++中的数据结构,它的作用类似于标准的字节容器,但将缓冲区对齐为四个字节的倍数。我想尽可能多地重用标准库抽象,而不是滚动我自己的抽象。到目前为止,我一直在使用std::string和std::vector来达到这个目的。不幸的是,我收到了有关最新MacOS的错误报告,显然string::data()不再是4字节对齐的,而是地址与1mod4一致。当我看到这个时,我当然没有意识到规范保证字符串将按4字节对齐。我可以切换到vector,但不幸的是现在我不确定为什么这应该是4字节对齐的。即使使用自定义分配器,vector实现也可能在它分配的缓冲区开始时做一些奇怪的事情。我的问题:从