我正在尝试渲染2D图像,使其完全覆盖整个窗口
对于我的测试,我设置了一个窗口,使客户区域正好是320x240,纹理也是这个尺寸
我为以原点为中心的1x1x1立方体设置了正投影,并将我的视口设置为0,0,320,240
纹理映射到以原点为中心的1x1大小的四边形
着色器是一个简单的着色器,用于执行Proj ModelView Pos
我创建了一个测试纹理,可以让我验证渲染效果,并且看到一个我无法动摇的一致差异。
渲染的结果始终是一些拉伸,将一些像素放在窗口的右上方,并且看起来总是相同的量,无论窗口大小(相同的像素数量) ,如果我用另一个值替换320x240)
我认为它与窗口装饰宽度有关,但我不确定如何修复它以使解决方案不是平台/机器特定的。
编辑:
代码是使用freeglut和glew的直接C ++
确认如果我调用glutFullScreen就不会发生这种情况,所以它肯定与窗口模式相关。
答案 0 :(得分:3)
注意:在添加语言标记之前已经回答了这个问题
不确定您使用的是哪个模块。 如果您使用的是Pyglet,最简单的方法就是:
import pyglet
width = 320
height = 240
window = pyglet.window.Window(width, height)
image = pyglet.resource.image('image.png')
@window.event
def on_draw():
window.clear()
image.blit(0, 0, 0, width, height)
pyglet.app.run()
您可以在此处找到有关此内容的更多信息: http://www.pyglet.org/doc/programming_guide/size_and_position.html http://www.pyglet.org/doc/programming_guide/displaying_images.html