小编and*_*sve的帖子

为OS X创建虚拟网络摄像头设备

我正在寻找一种解决方案,在OS X下创建一个"虚拟"网络摄像头设备(它就像一个普通的硬件网络摄像头,但应用程序可以完全控制输出的内容).我对C++很有经验,但与Objective-C和OSX/Cocoa编程没什么关系.

任何可以指引我正确方向,在哪里寻找以及我应该寻找什么的人?我搜索过,但大多数结果似乎都集中在Windows和DirectX上.

谢谢!

webcam cocoa objective-c

22
推荐指数
1
解决办法
8059
查看次数

使用动态大小的内存池在多线程C/C++中实现内存管理器?

背景:我正在开发一种多平台框架,它将用作游戏工具/工具创建的基础.基本思想是拥有一个工作池,每个工作线都在自己的线程中执行.(此外,工作人员也可以在运行时生成.)每个线程都有自己的内存管理器.

我一直在考虑创建自己的内存管理系统,我认为这个项目最终会尝试一下.我发现这种系统拟合由于该框架的用法类型通常需要实时内存分配(游戏和纹理编辑工具).

问题:

  • 没有普遍适用的解决方案(?) - 该框架将用于游戏/可视化(不是AAA,而是独立/播放)和工具/应用程序创建.我的理解是,对于游戏开发,通常(至少对于控制台游戏)在初始化时只分配一大块内存,然后在内存管理器内部使用这个内存.但这种技术适用于更一般的应用吗?

    在游戏中你理论上可以知道你的场景和资源需要多少内存,但是例如,照片编辑应用程序将加载所有不同大小的资源......所以在后一种情况下,更动态的内存"块大小"将是需要?这让我想到了下一个问题:

  • 移动已经分配的数据并保留有效指针 - 通常在堆上分配时,您将获得一个指向内存块的简单指针.在自定义内存管理器中,据我所知,类似的方法是返回指向预分配块中空闲区域的指针.但是,如果预先分配的块太小而需要调整大小甚至进行碎片整理,会发生什么?数据需要在内存中移动,旧指针无效.有没有办法以某种方式透明地包装这些指针,但仍然使用它们作为通常"在外部"的内存管理,就好像它们是通常的C++指针一样?

  • 第三方库 - 如果无法透明地将自定义内存管理系统用于应用程序中的所有内存分配,则我链接的每个第三方库仍将在内部使用"旧"OS内存分配.我已经了解到库通常会公开函数来设置库将使用的自定义分配函数,但不保证我将使用的每个库都具有此功能.

问题:实现可以使用动态大小的内存块池的内存管理器是否可行且可行?如果是这样,如何在不破坏当前正在使用的指针的情况下碎片整理和内存调整大小如何工作?最后,如何最好地实现这样一个系统与第三方库一起工作?

我也很感谢任何相关的阅读材料,论文,文章和诸如此类的东西!:-)

c c++ memory-management

11
推荐指数
2
解决办法
2935
查看次数

标签 统计

c ×1

c++ ×1

cocoa ×1

memory-management ×1

objective-c ×1

webcam ×1