小编sta*_*oat的帖子

在macOS上打印可执行文件的rpath

我想使用改变可执行文件的rpathinstall_name_tool,但我无法弄清楚rpath现在是什么.install_name_tool需要在命令行上给出旧的和新的rpath.我可以使用什么命令在macOS下打印可执行文件的rpath

macos terminal command-line darwin dynamic-linking

68
推荐指数
3
解决办法
3万
查看次数

opengl - 与之前的framebuffer内容混合

我通过帧缓冲对象渲染到纹理,当我绘制透明图元时,图元与在单个绘制步骤中绘制的其他图元正确混合,但它们没有与帧缓冲区的先前内容正确混合.

有没有办法正确地将纹理内容与新数据混合?

编辑:更多信息需要,我会尝试更清楚地解释;

我使用的blendmode是GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA.(我相信这通常是标准的混合模式)

我正在创建一个跟踪鼠标移动的应用程序.它绘制了将前一个鼠标位置连接到当前鼠标位置的线条,因为我不想在每个帧上再次绘制线条,我想我会绘制一个纹理,从不清除纹理然后只绘制一个矩形它上面的纹理来显示它.

这一切都很好,除了当我在纹理上绘制alpha小于1的形状时,它不能与纹理的先前内容正确混合.假设我有一些黑色线条,alpha = .6被绘制到纹理上.一对夫妇画了一个周期之后,我在那些线上画了一个alpha = .4的黑色圆圈.圆圈"下方"的线条被完全覆盖.虽然圆圈不是扁平的黑色(它与白色背景正确混合),但圆圈下方没有"深色线条",正如您所期望的那样.

但是,如果我在同一帧中绘制线条和圆圈,它们会正确混合.我的猜测是纹理不会与之前的内容混合.它就像它只与glclearcolor混合.(在这种情况下,<1.0f,1.0f,1.0f,1.0f>)

opengl alphablending framebuffer render-to-texture

17
推荐指数
3
解决办法
2万
查看次数

从WP8中的C++代码调用C#方法

我有兴趣从Windows Phone 8中的C++代码调用C#方法.我已经学会了如何通过C++代码中的委托声明将回调函数传递给C#中的C++代码,但是我想知道我是否可以做以下任何一项:

  • 直接从C++代码调用某些方法.这将涉及以某种方式检查来自C++的C#对象化妆,对我来说似乎不太可能,但我想我无论如何都会问你们

  • 触发C#代码中的事件,然后可以通过C#方法处理

  • 使用调度程序在主UI线程中调用C#回调,以便回调可以修改UI元素

  • 使用调度程序触发C#代码中的事件,(基本上是上述两点的合并)

简而言之,我正在寻找尽可能多的C++ - > C#通信技巧,因为你们可以抛弃我,我想要全部学习.:)

c++-cx windows-phone-8

14
推荐指数
2
解决办法
5544
查看次数

部署到Windows Phone 8时出现"找不到文件"错误

我试图在我的全新Lumia 920上部署我的第一个Windows Phone 8应用程序,然后在模拟器上运行并运行,但我在部署期间遇到以下错误:

1>------ Deploy started: Project: AudioFilteringPhone, Configuration: Debug ARM ------
1>Deploying C:\Users\<username>\Documents\Visual Studio 2012\Projects\AudioFiltering\AudioFiltering\Bin\ARM\Debug\AudioFiltering_Debug_ARM.xap...
1>Connecting to Device...
1>Optimizing for device...
1>Installing the application...
1>Deployment of application to device failed.
1>Error writing file '%FOLDERID_SharedData%\PhoneTools\11.0\Install\{29b31259-9af9-47a5-9891-c3098315d3d8}\AudioFiltering_Debug_ARM.xap'. Error 0x80070003: The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)

如果我手动尝试使用部署工具进行部署,则会出现相同的错误.有谁知道这是什么原因以及如何减轻它?即使我刚刚启动一个新的WP8应用程序并立即尝试部署它,也会发生这种情况,因此我的环境出了问题,而不是我的应用程序配置.

deployment windows-phone-8

12
推荐指数
2
解决办法
5071
查看次数

在OSX上从dlopen句柄中查找路径名

我已经dlopen()编写了一个库,我想从它传递给我的句柄反转回到共享库的完整路径名.在Linux和朋友们,我知道我可以dlinfo()用来获取链接图并迭代这些结构,但我似乎无法在OSX上找到模拟.我能做的最接近的事情是:

  • 使用dyld_image_count()dyld_get_image_name()迭代所有当前打开的库,希望我能猜出哪一个对应于我的句柄

  • 不知何故找到一个符号,它生活在我拥有的手柄里面,然后传递给它dladdr().

如果我对我刚刚打开的库中的符号名称有先验知识,我就可以dlsym()然后使用dladdr().这很好.但是在一般情况下,我不知道这个共享库中有什么内容,我需要能够枚举符号才能做到这一点,我不知道该怎么做.

因此,dlopen非常感谢有关如何从其句柄查找库的路径名的任何提示.谢谢!

c macos dyld

12
推荐指数
2
解决办法
2101
查看次数

Grafana的多时间序列操作

如何在Grafana中减去两个时间序列?或者将两个加在一起,相互分开等等?我在网上发现了关于时间序列之间存在差异的模糊提示,但实际上并没有告诉我如何这样做.我正在使用v2.0.2带有Influxdb的Grafana v0.8并且已经使用了图形控件,足以发现difference我可以应用的运算符之类的东西,但我不知道如何使用它.我试图找到关于这个的文档,但是我能找到最接近的关于这个主题的内容非常沉默,并且看起来有些过时,因为自从那些截图被拍摄以来界面已经改变了.

谢谢!

metrics influxdb grafana

8
推荐指数
2
解决办法
2万
查看次数

AngularJS:将指令应用于所有匹配的标记

我有一个我构建的大型Web表单(超过100个字段),我想添加AngularJS以使用户能够键入表单并运行Javascript以在键入时将Angular Model存储在数据库中.很明显,每次用户改变一小段数据时我都不想将数据发送到数据库,因此我想使用该ng-model-options指令告诉Angular只updateOn在500ms左右后触发.

我真的不想对<input>我的HTML中的每个标签应用大量的角度,但这是很多打字,如果我想要改变一些东西,那么很多地方都需要经过并手动更新.$("input").setDirective()如果它存在的话,我真正喜欢做的事情就是或类似的事情.我意识到我正在以jQuery类型的方式思考这个问题,所以我有兴趣听到将相同的指令集应用于我的DOM中与某些选择器匹配的每个元素的"正确"Angular方法.

谢谢!

html javascript angularjs

7
推荐指数
1
解决办法
2015
查看次数

glDeleteTextures不删除纹理

我正在尝试编写一个类来进行片段着色器链接,使用帧缓冲对象渲染到纹理着色器着色器,然后使用片段着色器等将该纹理渲染到另一个纹理等.

我正在尝试处理内存泄漏现在,当我调整窗口大小并删除/重新分配我正在使用的纹理时,纹理没有被正确删除.

这是一段代码:

//Allocate first texture
glGenTextures( 1, &texIds[0] );
glBindTexture( GL_TEXTURE_2D, texIds[0] );
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA8, screenX, screenY, 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL );

//Allocate second texture
glGenTextures( 1, &texIds[1] );
glBindTexture( GL_TEXTURE_2D, texIds[1] );
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA8, screenX, screenY, 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL );

//Try to free first texture -- ALWAYS FAILS
glDeleteTextures( 1, &texIds[0] );
//Try to free second texture
glDeleteTextures( 1, &texIds[1] );
Run Code Online (Sandbox Code Playgroud)

当我使用gDEBugger运行它时,它告诉我"警告:调试程序删除不存在的纹理.纹理名称:1"当我尝试删除texIds [0]时.(我现在将它们放在数组中的原因是因为我曾经同时创建和释放它们,但是当你一次释放2个纹理时,它将在一个上静默失败并继续另一个).

如果我不创建texIds [1],我可以释放texIds [0],但是一旦我创建了第二个纹理,我就不能再释放我创建的第一个纹理了.有任何想法吗?

opengl memory-leaks

5
推荐指数
1
解决办法
3875
查看次数

write()上的段错误,带有~8MB缓冲区(OSX,Linux)

我很好奇什么样的缓冲区大小write()和read()可以在Linux/OSX/FreeBSD上处理,所以我开始玩下面的哑项目:

#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>

int main( void ) {
    size_t s = 8*1024*1024 - 16*1024;
    while( 1 ) {
        s += 1024;
        int f = open( "test.txt", O_CREAT | O_WRONLY | O_TRUNC, S_IRUSR | S_IWUSR | S_IXUSR );
        char mem[s];
        size_t written = write( f, &mem[0], s );
        close( f );
        printf( "(%ld) %lu\n", sizeof(size_t), written );
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这让我可以测试在segfaulting之前我能得到的看似"8MB障碍"的接近程度.在大约8MB标记处,我的程序死了,这是一个示例输出:

(8) 8373248
(8) 8374272
(8) 8375296
(8) 8376320
(8) 8377344
(8) …
Run Code Online (Sandbox Code Playgroud)

linux bsd segmentation-fault

5
推荐指数
1
解决办法
824
查看次数

multiprocessing.Pool 进程锁定到单个核心

我在 Ubuntu 12.04 上的 Python 中使用 multiprocessing.Pool,我遇到了一个奇怪的问题;当我调用map_async我的 Pool 时,我产生了 8 个进程,但它们都在争夺对我的 8 核机器的单个内核的支配地位。完全相同的代码用光了我的 Macbook Pro 中的两个内核,以及我的其他 Ubuntu 12.04 桌面的所有四个内核(用htop在所有情况下都使用)。

我的代码太长,无法全部发布,但重要的部分是:

P = multiprocessing.Pool()
results = P.map_async( unwrap_self_calc_timepoint, zip([self]*self.xLen,xrange(self.xLen)) ).get(99999999999)
P.close()
P.join()
ipdb.set_trace()
Run Code Online (Sandbox Code Playgroud)

根据本文的建议,whereunwrap_self_calc_timepoint是一个将必要self参数传递给类的包装函数

所有三台计算机都使用 Python 2.7.3,我真的不知道从哪里开始寻找为什么那台 Ubuntu 计算机正在运行。关于如何开始缩小问题范围的任何帮助都会有所帮助。谢谢!

python multiprocessing

5
推荐指数
1
解决办法
3539
查看次数