草庐IT

direct-buffer

全部标签

c++ - 如何获得指向虚拟成员函数的 "direct"函数指针?

我在一个嵌入式平台上工作,该平台不能很好地处理动态代码(根本没有推测/OOO执行)。在这个平台上,我经常在同一个对象上调用虚拟成员函数,但是编译器无法优化vtable-lookup,因为它似乎没有识别出仅在第一次调用时才需要查找。因此我想知道:是否有一种手动方法可以将C++类的虚拟成员函数去虚拟化,以获得直接指向已解析地址的函数指针?我查看了C++函数指针,但由于它们似乎需要指定类型,我想这不会成功。提前致谢 最佳答案 没有通用的仅标准C++方法来查找虚函数的地址,仅给出对基类对象的引用。此外,没有合理的type,因为this不需要

Qualcomm® AI Engine Direct 使用手册(26)

Qualcomm®AIEngineDirect使用手册(26)8.2高级的8.2.1QNNHTP共享缓冲区教程8.2.2使用DLC执行8.2高级的8.2.1QNNHTP共享缓冲区教程介绍本教程介绍如何使用数据缓冲区在QNNHTP后端的处理域之间进行共享访问。使用共享缓冲区可以消除主机CPU上的客户端代码和HTP加速器之间的数据复制。HTP后端支持两种类型的共享内存。Qnn_MemDescriptor_t类型QnnMemHtp_Descriptor_t类型描述符QNN_MEM_TYPE_ION1、不适用每个张量将被映射到它自己的共享缓冲区;2、文件描述符和内存句柄之间的一对一关系QNN_MEM_

c++ - 如何设置 Direct3D 纹理中单个像素的颜色?

我正在尝试在Direct3D中将2D图像绘制到屏幕上,我假设这必须通过将纹理映射到投影以填充屏幕的矩形广告牌多边形来完成。(我不感兴趣或不能使用Direct2D。)我在SDK中找到的所有纹理信息都描述了从文件加载位图并分配纹理以使用该位图,但我还没有找到操作的方法逐像素位图形式的纹理。我真正想要的是这样的功能voidTextureBitmap::SetBitmapPixel(intx,inty,DWORDcolor);如果我不能直接在纹理对象中设置像素,我是否需要保留一个作为位图的DWORD数组,然后将纹理分配给每一帧?最后,虽然我最初假设我将在CPU上执行此操作,但每个像素的颜色计算

c++ - Direct3D11(C++) : Rendering (basic) question

我一直在关注一本关于使用D3D11进行游戏编程的基础知识的书。我现在了解Direct3D的绝对基础知识:)但是……我有一个问题。在书中,我总是不得不一次制作一个演示。现在,我正在尝试用它制作2D游戏。因为我不想习惯坏习惯所以我需要你的建议。在书中,我总是必须定义一个(结构VertexPos与texcoord和位置成员)或(结构VertexPos只有一个XMFLOAT3位置成员)。在我制作的游戏中,我希望能够绘制没有纹理的实体表面和有纹理的表面。我不确定如何做到这一点,更不用说高效地做到这一点了。这是我的渲染函数:voidGameSpriteDemo::Render(){if(m_pD3

c++ - Direct3D11(C++) : Updating Texture coordinates in constant buffer?

我正在尝试使用Direct3D制作一个相当基本的2D引擎。我制作了一个LoadImage()函数,它将图像的所有相当静态的行为存储在一个对象中。(着色器、顶点缓冲区、采样器等)我计划在常量缓冲区中使用矩阵定位顶点。但是,我还想有一个DrawImage()函数,它有一个参数来告诉纹理的哪一部分应该被绘制(剪裁),所以我必须更新纹理坐标。由于顶点缓冲区已经预定义,我想知道是否有一种方法可以通过发送到顶点着色器的常量缓冲区来更新纹理坐标?我希望我的问题足够清楚,如果您有任何疑问,请查看下面的代码。boolGameManager::GMLoadImage(Image*pImage,constc

c++ - 带有 Protocol Buffer 的 RPC

我正在尝试使用ProtocolBuffer和zeromq制作rpc。这是我的原型(prototype)文件:messageSearchRequest{requiredstringquery=1;}messageSearchResponse{repeatedResultresult=1;}messageResult{requiredstringurl=1;optionalstringtitle=2;repeatedstringsnippets=3;}serviceSearchService{rpcSearch(SearchRequest)returns(SearchResponse);}

c++ - D3D11_BUFFER_SRV - 如何使用它?

在DirectX11中,在为缓冲区创建着色器资源View时;我们必须填写D3D11_BUFFER_SRV结构。结构如下:typedefstructD3D11_BUFFER_SRV{union{UINTFirstElement;UINTElementOffset;};union{UINTNumElements;UINTElementWidth;};}D3D11_BUFFER_SRV;我似乎找不到任何文档来说明我应该使用每个union中的哪个字段以及何时使用,甚至找不到它们的真正含义。MSDN页面(http://msdn.microsoft.com/en-us/library/window

c++ - 如何从 Direct3D 11 中的 CPU 访问帧缓冲区?

我正在创建一个简单的框架来教授C++/D3D11下的基本图形概念。该框架需要通过简单的接口(interface)函数(例如Putpixel(x,y,r,g,b))直接操作屏幕光栅内容。在D3D9下,这是一个相对简单的目标,通过在CPU组成表面的堆上分配表面缓冲区来实现。然后后备缓冲区将被锁定,堆缓冲区的内容将转移到后备缓冲区。据我了解,在D3D11下无法直接从CPU访问后备缓冲区。必须准备纹理资源,然后通过一些全屏几何图形将其绘制到后台缓冲区。我已经为这样的程序考虑了两个系统。第一个包含一个D3D11_USAGE_DEFAULT纹理和一个D3D11_USAGE_STAGING纹理。暂存

c++ - 如何写入 boost::asio::mutable_buffer?

我有一些代码为我提供了一个指向缓冲区的指针,以及我需要用数据填充的缓冲区的大小。我用boost::asio::mutable_buffer实例表示这个缓冲区,但是我如何正确使用这个缓冲区(例如,向它写入一个字符串,...)并让boost强制执行缓冲区边界?这是一些伪代码:size_tsome_callback(void*ptr,size_t){//thisfunctioniscalledby3rdpartyreturnour_handler(boost::asio::mutable_buffer(ptr,size));}size_tour_handler(constboost::asi

c++ - PVOID buffer转PCHAR有什么意义?

我在MS代码示例中看到下一个代码:PVOIDalignedBuffer[BUFFER_SIZE/sizeof(PVOID)];PCHARbuffer=(PCHAR)alignedBuffer;hResult=FilterSendMessage(context->Port,&commandMessage,sizeof(COMMAND_MESSAGE),buffer,sizeof(alignedBuffer),&bytesReturned);(alignedBuffer将保存作为重播传递给FilterSendMessage调用的结构数组)将PVOID转换为PCHAR有什么意义,这是否有助于