小编use*_*459的帖子

优化特定功能?

我想知道是否有一种特定的方法来优化只有一些功能(在大多数情况下)不应该被调试.

举个例子,假设我有一个3x3矩阵实现.

class Mat3
{
    Vec3 columns[3];

    Vec3 rowAt(int i) const { return Vec3(columns[0][i], columns[1][i], columns[2][i]); }

    Vec3 operator * (const Vec3& v)
    {
        return Vec3(dot(rowAt(0), v),
                    dot(rowAt(1), v),
                    dot(rowAt(2), v));
    }

    // versus, which is more efficient in unoptimized compiler generation
    // but a lot less readable and duplicate code

    Vec3 operator * (const Vec3& v)
    {
        return Vec3(columns[0][0].x * v.x + columns[1][0].y * v.y + columns[2][0].z * v.z),
                    columns[0][1].x * v.x + columns[1][1].y * v.y + columns[2][1].z * …
Run Code Online (Sandbox Code Playgroud)

c++

8
推荐指数
1
解决办法
150
查看次数

CMake在构建另一个之前运行构建的可执行文件?

如何在构建另一个之前告诉CMake构建并运行可执行文件?所以我有2个可执行文件"a"和"b",其中"a"需要运行才能生成"b"的头文件.因此"a"将2个文件夹作为参数,在其中从xml文件生成头文件,从输入目录到输出目录.

有没有办法告诉CMake这样做,以及知道修改xml文件的时间或修改项目"a"以重新生成文件?

cmake

8
推荐指数
1
解决办法
6636
查看次数

改变图书馆的扩展?

有没有办法改变共享库的扩展名,只在窗口从".dll"到其他东西?

add_library(mylib SHARED <src>)
Run Code Online (Sandbox Code Playgroud)

因此,我不需要创建一个mylib.dll文件,而是需要它像mylib.dla.

cmake

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

为可变参数模板推断参数类型?

有没有办法推断列表的类型,以避免必须传递列表应该的参数类型,只是从第一个元素类型推断它.

template<typename T, T... Args>
struct Calc
{
    // do stuff with Args
};

// Usage:
Calc<int, 1, 2, 3>::value;

typename<T... Args> Calc { }; // error T undefined

// Desired:
Calc<1, 2, 3>::value;          // auto deduced T = int
Calc<1.0f, 2.0f, 3.0f>::value; // auto deduced T = float
Run Code Online (Sandbox Code Playgroud)

有没有办法获得所需的行为,或者我必须将类型包含为参数?

c++ templates

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

着色器 TextureLod 参数值?

LOD 参数为texturelod取什么值?我发现的规范根本没有提到它。它是百分比还是带有百分比的索引值。如果是后者,有没有办法获得纹理具有的 mipmap 数量,以便我能够使用百分比?

opengl glsl

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

具有内部格式的纹理的帧缓冲区附件不完整?

所以我试图创建一个帧缓冲区,在其中渲染纹理,但我似乎无法让它使用我需要的格式。那就是GL_RGB32F。它适用于 GL_RGB16F 和 GL_RGBA32F 所以我不明白为什么 GL_RGB32F 从 glCheckFramebufferStatus 给我 GL_FRAMEBUFFER_INCOMEPLETE_ATTACHMENT 。我也没有从创建纹理的调用中得到任何错误。使用该内部格式是否有特殊要求?我可以看看我是否支持它吗?

glGenFramebuffers(1, &fbo);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);

glGenTextures(1, &positionTexture);
    glBindTexture(GL_TEXTURE_2D, positionTexture);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB32F, width, height, 0, GL_RGB, GL_FLOAT, nullptr);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, positionTexture, 0);
Run Code Online (Sandbox Code Playgroud)

opengl

2
推荐指数
1
解决办法
2145
查看次数

CMake设置默认搜索路径?

我根本不想每次我需要一个库时都设置一个环境变量,让孤独的搜索路径根本没有标准化(至少在Windows上)。通常,Find * .cmake不会在Windows上指定任何具有关联的位置。

有什么方法可以使CMake搜索指定目录(强制配置错误的Find * .cmake搜索否则将不会在系统级别设置的路径)?说我希望它在Windows上的“ C:\”上搜索还是仅在“ /”上搜索?这样,我可以将所有库都放在“ C:\”中。

cmake

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

标签 统计

cmake ×3

c++ ×2

opengl ×2

glsl ×1

templates ×1