小编Irb*_*bis的帖子

glBlendFunc和glClearColor alpha参数

在OpenGL中,为了获得适当的透明效果,我应该使用glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)但是使用混合函数时,alpha参数glClearColor变得毫无意义.当我在I中更改alpha参数时glClearColor仍然可以获得相同的效果.我什么时候可以使用alpha参数glClearColor?我能达到什么样的效果?

opengl glsl opengl-4

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

Qt - 设置相对鼠标位置

我正在将我的图形引擎从Freeglut转移到Qt.我的窗口类继承自QWindow.我将相对鼠标位置设置到窗口中心并隐藏光标时遇到问题.在freeglut中,代码如下所示:

glutWarpPointer((glutGet(GLUT_WINDOW_WIDTH) / 2), (glutGet(GLUT_WINDOW_HEIGHT) / 2));
glutSetCursor(GLUT_CURSOR_NONE);
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样的事情:

this->cursor().setPos((width() / 2), (height() / 2)); // this seems to set an absolute (global) position
this->cursor().setShape(Qt::BlankCursor); // doesn't work
Run Code Online (Sandbox Code Playgroud)

怎么实现呢?

qt

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

模板类 - 成员函数专业化

这是一个示例代码:

template<class T>
class A
{
public:
   A(T t): x(t){}
   T getX();
private:
   T x;
};

template<class T>
T A<T>::getX()
{
   return x;
}

// member function specialization
template<> // works with and without template<> 
long A<long>::getX()
{
   return 1000L;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在成员函数专门化之前使用和不使用模板<>.为什么?在这种情况下它有什么区别?

Edit1: 我以这种方式使用该模板(VS 2012编译器):

A<int> a1(1);
cout<<a1.getX()<<endl;
A<long> a2(1);
cout<<a2.getX()<<endl;
Run Code Online (Sandbox Code Playgroud)

c++

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

glsl compute shader - 同步

我可以shared float [gl_WorkGroupSize.x] 为每个工作组定义一个共享数据结构(例如一个数组) .工作组内的执行顺序是未定义的,所以在某些时候我可能需要同步所有使用共享数组的线程,例如所有线程必须在计算之前将一些数据写入共享数组.我找到了两种方法来实现这一目标:

OpenGL SuperBible:

barrier();
memoryBarrierShared();
Run Code Online (Sandbox Code Playgroud)

OpenGL 4着色语言手册:

barrier();
Run Code Online (Sandbox Code Playgroud)

我应该在屏障后调用memoryBarrierShared吗?当我可以在不使用屏障的情况下使用memoryBarrierSharedmemoryBarrier时,你能给我一些实际的例子吗?

opengl synchronization glsl

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

Linux - 图形驱动程序和Mesa之间的关系

当我安装nvidia专有驱动程序时,使用Nvidia OpenGL实现(我不需要Mesa).哪个OpenGL实现可以与开源的nvidia驱动程序一起使用 - Nouveau?Nouveau还提供OpenGL实现还是必须使用Mesa OpenGL实现?我可以使用带有Mesa OpenGL实现的nvidia驱动程序吗?有什么可能性?

linux opengl drivers nvidia

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

dbus - 如何设置包含路径

在我的系统DBUS报头被放置在/usr/include/dbus-1.0/dbus/dbus-arch-deps.h是其他位置(似乎是怪):/usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h在我的程序我有#include<dbus-1.0/dbus/dbus.h>,但在每一个头文件,其中包括其他路径是这样的:#include<dbus/xxx.h>我可以复制dbus-arch-deps.h/usr/include/dbus-1.0/dbus/,但如何解决在DBUS报头的路径?

c++ dbus ubuntu-12.04

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

如何在向量的向量中找到一个元素

我想在向量v 的向量中找到字符串x

std::vector<std::string> vA{"A", "B", "C"};
std::vector<std::string> vB{"D", "E", "F"};

std::string x = "E";
std::vector<std::vector<std::string>> v{vA, vB};
Run Code Online (Sandbox Code Playgroud)

我的情况如何使用 std::find ?你还有其他想法吗?

编辑结果表明至少找到了一个“E”的布尔值。

我想知道是否有可能以某种方式使用 std::find* :

std::find*(v.begin(), v.end(), /*lambda with next std::find*/) 
Run Code Online (Sandbox Code Playgroud)

c++

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

将char转换为unsigned char

转换如何运作?例如:char [-128,127]的范围,unsigned char [0,255]的范围

char x = -128;
unsigned char y = static_cast<unsigned char>(x);
cout<<y; //128
Run Code Online (Sandbox Code Playgroud)

为什么不是0?

c++

0
推荐指数
2
解决办法
653
查看次数

const正确性和成员参考

我有以下课程:

class DataBuilder
{
public:
    DataBuilder(Data& data): data_(data){}

    //Fun modify data_, uses private methods
    void Fun(std::string name, int id) //const ?
    { 
        //calculate newInfo based on params (uses private methods)
        auto& info = data_.GetInfo();
        info = newInfo;
    }
private:
    //some private methods
    Data& data_;
};
Run Code Online (Sandbox Code Playgroud)

理论上有趣可以是const,但我想知道它是否正确(逻辑常量)?

Edit1我添加了一个非常简化的Fun实现. Edit2 Data有两个GetInfo重载:

Info& Data::GetInfo();
const Info& Data::GetInfo() const;
Run Code Online (Sandbox Code Playgroud)

c++ const

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

为什么std :: sort会更改对象的值?

一些代码,一个示例类:

std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> dis(1, 100);

class T
{
private:
   int x;
   int y;
public:
   T(): x(dis(gen)), y(dis(gen)) {}
   int getX() const { return x; }
   int getY() const { return y; }
};
Run Code Online (Sandbox Code Playgroud)

一个函数对象类:

class F
{
public:
   inline bool operator()(const T &a, const T &b) const
   {
      return (((a.getX() * a.getY()) > ( b.getX() * b.getY())) ? 1 : 0);
   }
};
Run Code Online (Sandbox Code Playgroud)

我创建了类T的对象,然后我尝试对它们进行排序:

std::vector<T> myVec(10);
T *p = new T[10];
F f;

for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ stl c++11

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

标签 统计

c++ ×6

opengl ×3

glsl ×2

c++11 ×1

const ×1

dbus ×1

drivers ×1

linux ×1

nvidia ×1

opengl-4 ×1

qt ×1

stl ×1

synchronization ×1

ubuntu-12.04 ×1