a „oe=&ã@s<ddlZddlmZzddlTddlTWn,eyTedƒedƒe d¡Yn0ddlZddl Z ddl Z ddl Z dZ dZ dZdZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZ gd¢Z!gd¢Z"ddgZ#dd„Z$ej%Z&Gdd„de&ƒZ'Gdd„de'ƒZ(Gd d!„d!e'ƒZ)d"d#„Z*e+d$k�r8e*ƒdS)%éN)Údocview)Ú*z4The OpenGL extensions do not appear to be installed.zThis Pythonwin demo can not runééÿÿÿÿééééé é@é€éiiiii i@l)ré$éIémé’é¶éÛéÿ)réUéªrrcCs\||?d@}|dkr$|d@}t|S|dkr<|d@}t|S|dkrT|d@}t|SdSdS)Nérréér)Úoneto8Útwoto8Úthreeto8)ÚiZnbitsÚshiftÚval©r úAC:\Program Files\Certbot\pkgs\pythonwin\pywin\Demos\openGLDemo.pyÚComponentFromIndex1s r"c@s„eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„ZdS) Ú OpenGLViewc Csn| |jtj¡|d}|tjBtjB}|d|d|d|d|d||d|d|d f }|j |¡}|S) Nérrrrrérr)Z HookMessageÚOnSizeÚwin32conZWM_SIZEZWS_CLIPSIBLINGSZWS_CLIPCHILDRENÚ_obj_ÚPreCreateWindow)ÚselfZccZstyler r r!r)Es 6 zOpenGLView.PreCreateWindowcCsx|d}t |¡}t |¡}tdd||ƒ|jd|ksF|jd|krN| ¡| ||¡|jd|jd||f|_dS)Nrrrr)Úwin32apiZLOWORDZHIWORDZ glViewportÚoldrectZ RedrawWindowÚ OnSizeChange)r*ÚparamsZlParamÚcxÚcyr r r!r&Ps   zOpenGLView.OnSizecCs| d¡|j ¡S)N)édr1)ZSetScaleToFitSizer(ÚOnInitialUpdate©r*r r r!r2]sÿzOpenGLView.OnInitialUpdatecCs| ¡|_| ¡| ¡dS©N)Z GetClientRectr,Ú _InitContextsÚInit)r*Úcsr r r!ÚOnCreatees zOpenGLView.OnCreatecCs| ¡| ¡t ||¡Sr4)ÚTermÚ_DestroyContextsÚOpenGLViewParentÚ OnDestroy)r*Úmsgr r r!r<jszOpenGLView.OnDestroycCs | ¡dSr4©Ú DrawScene©r*Údcr r r!ÚOnDrawoszOpenGLView.OnDrawcCsdS)Nrr r@r r r!Ú OnEraseBkgndrszOpenGLView.OnEraseBkgndcCsX|j ¡}tƒ}ttBtB|_t|_d|_ d|_ t |_ t ||ƒ}t|||ƒ| ¡dS)Nér )rAÚ GetSafeHdcZCreatePIXELFORMATDESCRIPTORÚPFD_DRAW_TO_WINDOWÚPFD_SUPPORT_OPENGLÚPFD_DOUBLEBUFFERÚdwFlagsÚ PFD_TYPE_RGBAZ iPixelTypeÚ cColorBitsZ cDepthBitsÚPFD_MAIN_PLANEZ iLayerTypeZChoosePixelFormatZSetPixelFormatÚ_CreateRGBPalette)r*rAÚpfdZ pixelformatr r r!Ú_SetupPixelFormatvs   zOpenGLView._SetupPixelFormatcCs¢|j ¡}t|ƒ}t||ƒ}|jt@ržd|j>}g}t|ƒD]>}t||j |j ƒt||j |j ƒt||j |jƒdf}| |¡q)r*ÚidZtimeValr r r!r€ szCubeView.OnTimercCst |j¡dSr4)rZ kill_timerr�r3r r r!r9sz CubeView.TermcCsŽ|jr dSd|_tddddƒtttBƒtƒtdd|j ƒt|j dddƒt|j dddƒt|j dddƒ|j d|_ |j d|_ |j d|_ t t ƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtƒt tƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtƒt tƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtdddƒtƒtƒtƒttƒƒd|_dS) Nrr^r_rxrygà¿gà?r)r{rarerfrgrhrirbZ glRotatefr}r|r~rtZ GL_QUAD_STRIPrsrurvZGL_QUADSrlrmrnror3r r r!r?sv                                         zCubeView.DrawSceneN)rYrZr[r-r6r€r9r?r r r r!rwòs rwcCst dddt¡}| d¡dSr4)rZ DocTemplaterwZOpenDocumentFile)Útemplater r r!Útestksr„Ú__main__),ÚsysZ pywin.mfcrZ OpenGL.GLZ OpenGL.GLUÚ ImportErrorÚprintÚexitrr+r'rSrJZPFD_TYPE_COLORINDEXrLZPFD_OVERLAY_PLANEZPFD_UNDERLAY_PLANErHZ PFD_STEREOrFZPFD_DRAW_TO_BITMAPZPFD_SUPPORT_GDIrGZPFD_GENERIC_FORMATrPZPFD_NEED_SYSTEM_PALETTEZPFD_SWAP_EXCHANGEZ PFD_SWAP_COPYZPFD_SWAP_LAYER_BUFFERSZPFD_GENERIC_ACCELERATEDZPFD_DEPTH_DONTCAREZPFD_DOUBLEBUFFER_DONTCAREZPFD_STEREO_DONTCARErrrr"Z ScrollViewr;r#r\rwr„rYr r r r!ÚsX   kCy