小编Mat*_*Mat的帖子

如何使用CMake将DLL文件复制到与可执行文件相同的文件夹中?

我们使用CMake在我们的SVN中生成源代码的Visual Studio文件.现在我的工具需要一些DLL文件与可执行文件位于同一文件夹中.DLL文件位于源旁边的文件夹中.

如何更改我CMakeLists.txt的生成的Visual Studio项目将在发布/调试文件夹中已经具有特定的DLL文件,或者在编译时将它们复制?

dll cmake

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

是否应该使用前向声明而不是尽可能包括?

每当类声明仅使用另一个类作为指针时,使用类前向声明​​而不是包含头文件是否有意义,以便先发制人地避免循环依赖的问题?所以,而不是:

//file C.h
#include "A.h"
#include "B.h"

class C{
    A* a;
    B b;
    ...
};
Run Code Online (Sandbox Code Playgroud)

改为:

//file C.h
#include "B.h"

class A;

class C{
    A* a;
    B b;
    ...
};


//file C.cpp
#include "C.h"
#include "A.h"
...
Run Code Online (Sandbox Code Playgroud)

有什么理由不尽可能不这样做吗?

c++ forward-declaration

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

c ++如何从路径字符串中删除文件名

我有

const char *pathname = "..\somepath\somemorepath\somefile.ext";
Run Code Online (Sandbox Code Playgroud)

如何将其转化为

"..\somepath\somemorepath"
Run Code Online (Sandbox Code Playgroud)

c++ filesystems string

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

GLSL,信号量?

我之前已经遇到过这样的问题:我希望通过执行以下操作来混合图像单元中的颜色值:

vec4 texelCol = imageLoad(myImage, myTexel);
imageStore(myImage, myTexel, texelCol+newCol);
Run Code Online (Sandbox Code Playgroud)

在多个片段可以具有"myTexel"相同值的情况下,这显然是不可能的,因为无法在imageLoad和imageStore命令之间创建原子性,而其他shaderinvocations可能会更改其间的纹素颜色.

现在有人告诉我,人们通过使用uint纹理上的原子命令创建信号量来解决这个问题,这样着色器会在访问texel之前以某种方式在while循环中等待,并且只要它是空闲的,就会原子地将它写成整数用于阻止其他片段着色器调用的纹理,处理颜色纹理元素,并在完成时以原子方式再次释放整数纹素.

但我无法理解这是如何真正起作用的,以及这些代码会是什么样子?

真的可以这样做吗?可以将GLSL片段着色器设置为在while循环中等待吗?如果有可能,有人可以举个例子吗?

opengl concurrency glsl

11
推荐指数
1
解决办法
1698
查看次数

存储新类的默认目录?

我在Visual Studio 2010中有一个c ++项目.如果我在visual studio中右键单击我的项目并选择Add-> Class,它将在我的.sln文件所在的同一目录中创建一个.h和.cpp文件.

如何设置应存储创建文件的其他默认文件夹?

visual-studio-2010 visual-studio visual-c++

10
推荐指数
2
解决办法
9299
查看次数

iOS:没有iTunes的文件共享?

我为iOS开发了一个企业应用程序,用户应该能够将桌面上的文件添加到应用程序中.

我使用文件共享实现了这一点,效果很好.

现在这家公司想要从他们的机器上摆脱iTunes(这是可以理解的,iTunes是一个非常具有侵入性的过程).

问题是,是否仍然可以在没有iTunes的情况下使用文件共享?也许还有其他申请?

或者将文件发送到应用程序的其他方式(最好不需要互联网连接)

//编辑:必须在Windows 7上工作,不能要求安装iTunes(还有一些其他工具允许访问iPad文件系统,但它们通过iTunes安装的驱动程序)

itunes file-sharing ios

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

问题:如何在调整centralwidget的大小时自动调整mainWindow的大小?

我想让我的CentralWidget有一定的规模.我需要做什么才能让我的mainWindow沿着它的中央窗口小部件调整大小?这里的代码不起作用:

int main (int argc, char **argv) {
    QApplication app(argc, argv);

    QGLFormat glFormat;
    glFormat.setVersion(4,2);
    glFormat.setProfile( QGLFormat::CompatibilityProfile);

    QGLWidget* render_qglwidget = new MyWidget(glFormat);

    QGLContext* glContext = (QGLContext *) render_qglwidget->context();
    glContext->makeCurrent();


    QMainWindow* mainWindow = new MyMainWindow();
    render_qglwidget->resize(720, 486);
    mainWindow->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding));
    mainWindow->setCentralWidget(render_qglwidget);

    render_qglwidget->resize(720, 486);

    mainWindow->show();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

打开的窗口非常小.

我可以使用设置主窗口的大小

 mainWindow->resize(720, 486);
Run Code Online (Sandbox Code Playgroud)

而且centralwidget也会改变它的大小.但是中央小部件会略微被压扁,因为mainWindow的工具栏也位于那些486像素内.

如何让mainWindow自动调整大小?

c++ opengl user-interface qt

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

c ++调用带有计算参数的超类构造函数

可能它非常简单,但有人可以告诉我如何使用子类'构造函数中计算的参数调用超类'构造函数?这样的事情:

class A{
  A(int i, int j);
};

class B : A{
  B(int i);
};

B::B(int i){
  int complex_calculation_a= i*5;
  int complex_calculation_b= i+complex_calculation_a;
  A(complex_calculation_a, complex_calculation_b);
}
Run Code Online (Sandbox Code Playgroud)

//编辑:我编辑了这个例子,以便超类采用两个彼此有关系的参数

c++ inheritance constructor

6
推荐指数
1
解决办法
2201
查看次数

glsl fragmenthader渲染objectID

如何将对象的整数ID正确呈现为整数纹理缓冲区?

假设我有一个带有内部格式GL_LUMINANCE16的texture2D,我将它作为颜色附件附加到我的FBO.

渲染对象时,我将整数ID传递给着色器,并希望将此id渲染为整数纹理.

片段着色器输出的类型为vec4.如何正确地将我的ID转换为四个组件浮点数并避免转换不准确,以便最终整数纹理目标中的整数值对应于我想要渲染的整数ID?

opengl glsl

6
推荐指数
2
解决办法
2245
查看次数

块运动补偿编码器 - 如何处理参考帧中的块噪声?

我不熟悉视频压缩,但目前正在使用H.264压缩残留图像的项目

我的问题更多是关于视频编码器的一般性质.据我所知(正如维基百科所解释的那样),块运动补偿编码器将当前帧划分为一些非重叠块,对于每个块,它在当前块来自的参考帧中进行检查,然后计算出它的差异.期望的块和运动补偿块,然后以某种方式对该残差进行编码.

维基百科指出:"块运动补偿的主要缺点是它会在块边界处引入不连续性(块效应).这些伪像以锐利的水平和垂直边缘的形式出现,很容易被人眼发现并产生振铃效果(用于残差帧的变换编码的傅里叶相关变换中的高频子带中的大系数.

因此,由于参考帧已经包含块伪像(因为它被编码),然后这些块伪像被移位到当前块并且计算残差,然后由边界处的块伪像创建的高频.移位块也将显示为残差中的不连续性.并且不连续性通常对压缩不利.

在压缩残差之前,运动补偿块编码器是否以某种方式处理此块伪像?因为它确切地知道块是如何移位的,所以它知道块边界的位置,并且可以在编码残差之前或期间对它们做些什么,在这个地方移除/忽略不必要的高频.如果在像H.264这样的编解码器中执行这样的事情,有人可以解释编码器如何做到这一点的主要概念,给它一些术语等等吗?编码器如何处理参考帧中的块伪像?

compression video encoding video-encoding

6
推荐指数
1
解决办法
442
查看次数