小编pes*_*uww的帖子

如何在继承类之前初始化成员变量

我正在尝试创建一个需要首先初始化成员变量的类。我知道为什么会发生这种情况,但是有没有办法解决这个问题?

当前打印顺序:第二优先

想要的打印顺序:第一秒

#include <iostream>

struct A {
    A() {
        std::cout << "first" << '\n';
    }
};

struct B {
    B() {
        std::cout << "second" << '\n';
    }
};

struct C : public B {

    C() : a(), B() {

    }

    A a;

};

int main() {

    C c;

    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

c++ class

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

GL_SHADER_STORAGE_BUFFER 位置是否与其他着色器位置发生冲突?

我有多个使用着色器存储缓冲区的 glsl 文件。如果我将缓冲区基础与其他着色器文件绑定,但它们在存储缓冲区中的位置相同,则它们似乎会相互影响。这是否意味着我必须以某种方式解除绑定?当我为每个文件选择其他位置时,它们似乎对代码没有影响。

例如

第一.vs

layout(std430, binding = 0) buffer texture_coordinate_layout 
{
    vec2 texture_coordinates[];
};
Run Code Online (Sandbox Code Playgroud)

第二.vs

layout(std430, binding = 0) buffer vertices_layout
{
    vec2 vertices[];
};
Run Code Online (Sandbox Code Playgroud)

当有两个不同的着色器程序时,当我像这样绑定每个程序时

第一个着色器程序

glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, m_vertex_ssbo);
Run Code Online (Sandbox Code Playgroud)

第二个着色器程序

glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, m_texture_coordiante_ssbo);
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl

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

获取多维可变参数 std::array 的根类型

我嵌套了 std::array,其维度由模板参数 std::array<type, n, ...> 处理。

我想知道如何在 std::array<std::array<int, 2>, 2> 中获得 int 类型。

在这种情况下,我们可以只做 std::array<std::array<int, 2>, 2>::value_type::value_type,但是我如何才能做到这一点而不必放置与维度一样多的 value_types?

c++ stdarray

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

标签 统计

c++ ×3

class ×1

glsl ×1

opengl ×1

stdarray ×1