草庐IT

缓冲池

全部标签

python - Cython 缓冲协议(protocol)示例错误

我正在尝试这个url上的示例。http://cython.readthedocs.io/en/latest/src/userguide/buffer.html为了测试它,我执行以下操作。importpyximportpyximport.install(build_dir='build')importctestm=ctest.Matrix(10)m.add_row()print(m)当我调用m.add_row()函数时,这给了我一个错误TypeError:'int'对象不可迭代在类中add_row定义为fromcpythoncimportPy_bufferfromlibcpp.vecto

c++ - 使用 Boost 在共享内存中创建循环缓冲区时出现问题

我正在尝试使用Boostcircular_buffer和进程间库在共享内存中创建一个循环缓冲区。我编译并运行了Interprocessdocumentation中给出的示例用于在共享内存中毫无问题地创建vector。但是,当我修改它以将Boostcircular_buffer用作:intmain(intargc,char*argv[]){managed_shared_memorysegment(create_only,"MySharedMemory",65536);constShmemAllocatoralloc_inst(segment.get_segment_manager());

c++ - 如何在 DirectX 10 中正确更新顶点缓冲区

一些背景知识:我正在使用C++开发一个项目,在该项目中,我试图根据实时配置文件数据绘制对象的3D表示。分析数据是从外部分析硬件收集的。系统沿着一个物体移动,并以每秒300次的速度为我的软件提供剖面切片。每个切片由约8000个X-Y点的列表组成。轮廓仪的移动由编码器记录。编码器信息提供扫描的第3个维度。另一个需要注意的重要事项是探查器可能会在对象上来回移动。发生这种情况时,我想用新的(基于编码器位置)替换以前读取/绘制的切片。截至目前,我正在通过我按编码器计数存储的切片循环缓冲区来实现这一点。这也意味着当缓冲区填满并开始覆盖旧切片时,我将要丢弃切片。为了在屏幕上显示适当数量的主题片段——

c++ - 一种无需最大化内存即可实时缓冲高清视频的有效方法

我正在编写一个程序,涉及使用OpenCV实时处理来自网络摄像机的视频。我希望能够捕获(在处理过程中的任何时间)以前的图像(例如,十秒的值(value))并保存到视频文件中。我目前正在使用队列作为缓冲区(以推送“cv::Mat”数据)来执行此操作,但这显然效率不高,因为几秒钟的图像很快就会用完所有电脑内存。我尝试使用“cv::imencode”压缩图像,但使用PNG并没有太大区别,我需要一个使用硬盘驱动器内存且实时操作高效的解决方案。谁能提出一个非常简单有效的解决方案?编辑:只是为了让大家明白我此刻在做什么;这是10秒缓冲区的代码:voidrun(){cv::VideoCaptureca

c++ - 我可以在 OpenGL (C++) 的缓冲区中混合数据类型吗?

我有一个GLfloats数组,在我绘制四边形时用作位置和颜色(因此每个顶点有4个float)。我也想添加为四边形着色的功能,我想我会将RGBA打包到一个GLuint中,然后将其与位置一起发送到GPU。那么,我能否以某种方式向GPU发送4个GLfloat,然后发送1个GLuint?相关代码如下:voidSpriteRenderer::Init(){vertexBufferArrayInserts=0;hasBegun=GL_FALSE;glGenBuffers(1,&vertexBuffer);glBindBuffer(GL_ARRAY_BUFFER,vertexBuffer);glBu

c++ - 缺少哪个用户的帧缓冲区?

这是使用投影到屏幕上的帧缓冲区纹理和“主帧缓冲区”的同一对象的比较左图像有点模糊,而右图像则更清晰。在渲染到帧缓冲区时,诸如glPolygonMode(GL_FRONT_AND_BACK,GL_LINE)之类的某些选项也无法正常工作。我的“管道”看起来像这样BindframbufferdrawallgeometryUnbindDrawonQuadlikeastexture.所以我想知道为什么“主要frauffufffer”可以做到而“mine”却不能做到?两者之间有什么区别?用户帧缓冲区是否跳过某些阶段?是否可以匹配主缓冲区的质量?voidFbo::Build(){glGenFrame

c++ - 输出缓冲区不会刷新的情况?

我正在学习iostream对象和刷新缓冲区。我知道何时保证刷新输出缓冲区以及如何显式刷新缓冲区。但是,我从未见过输出缓冲区未刷新的情况。在我看来,即使我不使用诸如endl、flush和ends之类的操纵器,输出缓冲区也会在每个语句的末尾刷新>.那么,有没有输出缓冲区不会(或者至少,可能经常不会)被刷新的简单示例?我觉得我需要看到这样的案例才能真正理解输出缓冲区。 最佳答案 取决于系统。以下面的程序为例:#include#ifdefWIN32#include#definesleep(n)Sleep((n)*1000)#else#inc

java - 从 C/C++ 在内存中写入一个缓冲区,并在没有 JNI 的情况下在 java 中从中读取

我有一个问题,这是否可能以及如何实现?从使用Java从C/C++创建的内存缓冲区中读取字节?我的想法是使用JNI在C++中启动一个循环,将字节写入缓冲区,只将缓冲区的方向发送给Java,然后Java在另一个循环中从中读取字节。目标是减少JNI函数的调用,因为我注意到它们会降低性能。我想知道我必须在Java中使用哪些类以及在C++中使用哪些函数。非常感谢您 最佳答案 您可以使用ByteBuffer。最简单的方法是使用ByteBuffer.allocateDirect()使用Java分配的地址。如果你必须使用C提供的地址,你可以更改地址

c++ - 典型现代 CPU 的分支预测缓冲区有多大?

我正在处理的应用程序有大量的if语句,其特征是在任何一次执行中,90%的时间只有一个分支被执行。现在,我可以通过执行以下操作来测试分支预测对特定CPU的单个if语句的影响:-#include#includeusingnamespacestd;intmain(){inta;cin>>a;srand(a);intb;longcount=0;for(inti=0;i15)//Thiscanbechangedtogetstatisticsfordifferent%-agescount+=(b+10);}}cout我的问题是,是否有一种方法可以在给定CPU的实际大型应用程序中使用多个if语句测试

c++ - 在 VTK 帧缓冲区和 OpenCV Mat 数据之间转换

我在VTK中可视化数据,我想获取渲染窗口的帧缓冲区并将其显示在OpenCV应用程序中。我目前正在尝试通过:voidaig::VirtualScene::Mat(cv::Mat&m){typedefunsignedcharpixel;pixel*pixels=this->window_->GetRGBACharPixelData(0,0,this->w_,this->h_,true);m=cv::Mat(this->h_,this->w_,CV_8UC4,pixels);}但我最终得到了一个扭曲的图像:(上下颠倒和倾斜,我认为这是一个步骤问题。这段代码有没有明显的错误?我知道颠倒的问题是