FlorianRhiem / pyGLFW

Python bindings for GLFW
MIT License
233 stars 36 forks source link

Maximal hidden windows size? #25

Closed AviP1234 closed 5 years ago

AviP1234 commented 5 years ago

Hi, I used to render to frame buffer object images with width< 1061 using this code: glfw.init() glfw.window_hint(glfw.VISIBLE, False) self.window = glfw.create_window(self.width, self.height, "My OpenGL window", None, None) glfw.make_context_current(self.window)

And that work fine. For example, if I used: glGetDoublev(GL_VIEWPORT) I will get: array([ 0., 0., 1300., 1000.]) But when I try to use the same code for an image with a width larger then 1061 I get: array([ 0., 0., 1300., 1061.])

I am using windows PyOpenGL and PyGlfw. Thanks, Avi

FlorianRhiem commented 5 years ago

Hello Avi,

first off, this is only a wrapper around glfw and asking there would be better for issues not related to the python wrapper. However, this sounds like a general OpenGL issue, not directly related to glfw.

With that aside, you are writing that you use famebuffer objects. For these, the size of the hidden window shouldn't matter. What's important is the size of the texture or renderbuffer that you attach to the framebuffer object and the viewport that you set. There are OpenGL limits as well: GL_MAX_VIEWPORT_DIMS and GL_MAX_TEXTURE_SIZE/GL_MAX_RENDERBUFFER_SIZE

1061 sounds like you are not using an FBO, but using the framebuffer of the hidden window that might be limited to 1061 (e.g. 1080 vertical resolution minus some menu bar height?).

Are you using a framebuffer object? What are you attaching to it, a texture or a renderbuffer? What are their dimensions and what viewport do you set?

Best regards and happy holidays, Florian

AviP1234 commented 5 years ago

Thanks. You are right I didn't set up a viewport size and therefore the FBO was limited to the hidden windows limitation.
Happy holidays to you too, Avi