我正在实现一个 C 函数作为 Python 的扩展。在里面abstract.h,我发现了以下内容:
/* ==== Iterators ================================================ */
/* Takes an object and returns an iterator for it.
This is typically a new iterator but if the argument is an iterator, this
returns itself. */
PyAPI_FUNC(PyObject *) PyObject_GetIter(PyObject *);
/* Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.
This function always succeeds. */
PyAPI_FUNC(int) PyIter_Check(PyObject *);
Run Code Online (Sandbox Code Playgroud)
当我尝试PyObject_GetIter在明显不可迭代的对象(如数字)上使用迭代器时,出现错误SystemError: <built-in function xxx> returned a result with an error set。
static …Run Code Online (Sandbox Code Playgroud) 我试图在OpenGL中使用四边形绘制像素完美的位图...令我惊讶的是,缺少了非常重要的像素行:(绿色很好,红色不好)
方形的大小为30x30像素,红色2x2在左上角。
纹理使用GL_NEAREST。
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
Run Code Online (Sandbox Code Playgroud)
我不使用glViewport和glOrtho。相反,我将通过统一的屏幕尺寸发送给着色器:
uniform float cw;
uniform float ch;
...
gl_Position = vec4( -1.0f + 2.0f*(in_pos.x + in_offset.x)/cw,
1.0f - 2.0f*(in_pos.y + in_offset.y)/ch,
0.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)
但这似乎不是问题的根源,因为当我在着色器中添加(0.5,0.5)(相当于第3种情况)时,问题就消失了...
好的,现在我意识到第三个选项也不起作用: