以下类封装了缓冲区的OpenGL名称,并提供了一些用于更改缓冲区状态的方法:
class BufferObject {
public:
explicit BufferObject( GLenum type );
virtual ~BufferObject();
// some methods omitted
void dataStore( GLsizeiptr size, const GLvoid* data, int usage );
void* mapBufferRange( GLintptr offset, GLsizeiptr length, int accessFlag );
void unmapBuffer() const;
private:
GLuint object_;
};
Run Code Online (Sandbox Code Playgroud)
这些方法都没有改变BufferObject对象的状态,所以它们都可以声明const.然而,dataStore与mapBufferRange这两个呼叫的OpenGL方法,其中(改变GPU上的对象的状态glBufferData和 glMapBufferRange分别).我想声明它们,但没有const表明它们正在修改GPU上的状态.
在这种情况下,最佳做法是什么?
我用Lua将数字打印到一个文件中,有时候不是数字,而是显示-1.#IO.这是什么意思?
违规代码在以下要点中.
https://gist.github.com/Nelarius/6247636
而且违规数字位于最底层:meanPrice.包含的值存储在Commodity表中,稍后Commodity表将值记录到文件中.