glut 창에서 PyOpenGL을 사용하여 그래픽을 표시하는 코드가 있습니다. Retina Macbook Pro에서이 창은 저해상도 모드로 나타나며 하나의 OpenGL 픽셀은 4 개의 물리적 픽셀로 표시됩니다. 전체 네이티브 해상도로 표시하는 것이 훨씬 더 좋을 것입니다.Macbook 망막 디스플레이의 PyOpenGL
내 질문
그렇지 않으면 과잉 또는를 사용하여, 레티 나 디스플레이에 파이썬의 기본 해상도는 OpenGL 컨텍스트를 얻을 수있는 방법이 있나요? 문제 아래
의
예는 PyOpenGL 프로그램의 최소한의 작업 예입니다. 그것에 관해 특별한 것은 없으며,이 문제는 PyOpenGL 코드가 작동 함으로 인해 나타날 것입니다. 다음은 스크린 샷의 확대 된 세부 사항입니다. 흰색 삼각형을 구성하는 픽셀은 OS X 위젯의 픽셀 크기의 4 배입니다. 이는 망막 장치 용으로 특별히 설계되지 않은 프로그램의 경우 기본값입니다. PyOpenGL 프로그램에서이 기능을 해제하는 방법을 알고 싶습니다. 나는 당신이 과잉 생성 NSWindow 표시를 얻기 위해 몇 가지 PyObjC 바인딩을 사용하고 축척 계수 바이올린 할 것 같아요
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
import os
def initFunc():
glDisable(GL_DEPTH_TEST)
glClearColor(0.0, 0.0, 0.0, 0.0)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluOrtho2D(0.0, 400.0, 0.0, 400.0)
def displayFunc():
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(1.0, 1.0, 1.0)
glBegin(GL_TRIANGLES)
glVertex2f(10.0, 10.0)
glVertex2f(10.0, 100.0)
glVertex2f(100.0, 100.0)
glEnd()
glFlush()
if __name__ == '__main__':
glutInit()
glutInitWindowSize(400,400)
glutCreateWindow("GL test")
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutDisplayFunc(displayFunc)
initFunc()
os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "Python" to true' ''')
# prevent GL window from appearing behind other applications
glutMainLoop()
일부 코드를 게시해야합니다. – djc
이후의 내용은 https://developer.apple.com/library/mac/#documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Introduction/Introduction.html에 나와 있으며 http://developer.apple.com에서 직접 확인할 수 있습니다. /library/mac/#documentation/graphicsimaging/conceptual/opengl-macprogguide/HighResolutionOpenGLforHighResolutionEnablingOpenGLforHighResolution.html. 이제 이것을 파이썬에 매핑해야합니다. – mmgp
@ Nathaniel 그래서 질문이 다릅니다. 그것은 당신이 알고있는 것처럼 보이지 않았습니다. 이제는 AppKit import NSOpenGLView에 의해 얻어진 NSOpenGLView를 사용하는 방법을 아는 것뿐입니다. – mmgp