On 10/11/08, Noyan Tokgozoglu <[EMAIL PROTECTED]> wrote:
>
>  Is it possible to save a screenshot of the active window somehow? I'm
>  using opengl primitives, but when I try to do something like
>  CopyTexImage2D then call textureçsaveö ı get a weird, skewed image.
>  Can anyone help me?
>
>  The drawing method is as follows:
>
>  def draw():
>         global std
>         global win
>         win.switch_to()
>         global tex
>         glClear(GL_COLOR_BUFFER_BIT)
>         global image
>         glEnable(GL_TEXTURE_2D)
>         glBindTexture(GL_TEXTURE_2D,tex.id)
>         #colorBits = GLchar()
>         #glTexImage2D(GL_TEXTURE_2D,0 ,3 , 640, 480, 0 , GL_RGB,
>  GL_UNSIGNED_BYTE, colorBits)
>         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,
>  GL_LINEAR)
>         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,
>  GL_LINEAR)
>         glViewport(0,0,640,480)
>
>         if image:
>            glBindTexture(GL_TEXTURE_2D,image.id)
>            #tex.blit_into(image,0,0,0)
>         glBindTexture(GL_TEXTURE_2D,0)
>
>         for item in std:
>             if item[0] == 'line':
>                glLineWidth(item[5])
>                glColor3f(item[6][0],item[6][1],item[6][2])
>                pyglet.graphics.draw(2, pyglet.gl.GL_LINES,('v2i',
>  (item[1], item[2], item[3], item[4])))
>             elif item[0] == 'brush':
>                glPointSize( item[3] )
>                glColor3f(item[4][0],item[4][1],item[4][2])
>                pyglet.graphics.draw(1, pyglet.gl.GL_POINTS,('v2i',
>  (item[1], item[2])))
>         global drag
>         if drag:
>            global begpt
>            global endpt
>            global color
>            global ptsize
>            glColor3f(color[0],color[1],color[2])
>            glLineWidth(ptsize)
>            pyglet.graphics.draw(2, pyglet.gl.GL_LINES,('v2i',
>  (begpt[0], begpt[1], endpt[0], endpt[1])))
>
>         glBindTexture(GL_TEXTURE_2D,tex.id)
>         glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,0,0, 640, 480, 0)
>         glFinish()
>         glViewport(0,0,640,480)
>         glDisable(GL_TEXTURE_2D)
>         glFlush()
>
>  and I call tex.save() when the user presses a key.

I'd need to see more to give a better answer; but I would guess the
"tex" texture was created (or loaded) in pyglet as RGB, yet you're
recreating it as RGBA with CopyTexImage2D -- this would give the
skewed appearance you describe due to the mismatch in components.

Alex.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to