a oe=&@s<ddlZddlmZzddlTddlTWn,eyTedededYn0ddlZddl Z ddl Z ddl Z dZ dZ dZdZdZdZdZd Zd Zd Zd Zd ZdZdZdZdZdZdZdZdZdZ gdZ!gdZ"ddgZ#ddZ$ej%Z&Gddde&Z'Gddde'Z(Gd d!d!e'Z)d"d#Z*e+d$kr8e*dS)%N)docview)*z4The OpenGL extensions do not appear to be installed.zThis Pythonwin demo can not run @iiiii i@l)r$Im)rUrrcCs\||?d@}|dkr$|d@}t|S|dkr<|d@}t|S|dkrT|d@}t|SdSdS)Nrrr)oneto8twoto8threeto8)iZnbitsshiftvalr AC:\Program Files\Certbot\pkgs\pythonwin\pywin\Demos\openGLDemo.pyComponentFromIndex1s r"c@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) OpenGLViewc Csn||jtj|d}|tjBtjB}|d|d|d|d|d||d|d|d f }|j|}|S) Nrrrrrrr)Z HookMessageOnSizewin32conZWM_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 glViewportoldrectZ RedrawWindow OnSizeChange)r*paramsZlParamcxcyr r r!r&Ps   zOpenGLView.OnSizecCs|d|jS)N)dr1)ZSetScaleToFitSizer(OnInitialUpdater*r r r!r2]szOpenGLView.OnInitialUpdatecCs||_||dSN)Z GetClientRectr, _InitContextsInit)r*csr r r!OnCreatees zOpenGLView.OnCreatecCs||t||Sr4)Term_DestroyContextsOpenGLViewParent OnDestroy)r*msgr r r!r<jszOpenGLView.OnDestroycCs |dSr4 DrawScener*dcr r r!OnDrawoszOpenGLView.OnDrawcCsdS)Nrr r@r r r! OnEraseBkgndrszOpenGLView.OnEraseBkgndcCsX|j}t}ttBtB|_t|_d|_ d|_ t |_ t ||}t||||dS)Nr )rA GetSafeHdcZCreatePIXELFORMATDESCRIPTORPFD_DRAW_TO_WINDOWPFD_SUPPORT_OPENGLPFD_DOUBLEBUFFERdwFlags PFD_TYPE_RGBAZ iPixelType cColorBitsZ cDepthBitsPFD_MAIN_PLANEZ iLayerTypeZChoosePixelFormatZSetPixelFormat_CreateRGBPalette)r*rApfdZ pixelformatr r r!_SetupPixelFormatvs   zOpenGLView._SetupPixelFormatcCs|j}t|}t||}|jt@rd|j>}g}t|D]>}t||j |j t||j |j t||j |jdf}||q)r*idZtimeValr r r!r szCubeView.OnTimercCst|jdSr4)rZ kill_timerrr3r r r!r9sz CubeView.TermcCs|jr dSd|_tddddtttBttdd|j t|j dddt|j dddt|j ddd|j d|_ |j d|_ |j d|_ t t tdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtdddtt ttdddtdddtdddtdddtdddtdddtdddtdddtt ttdddtdddtdddtdddtdddtdddtdddtdddtttttd|_dS) Nrr^r_rxrygg?r)r{rarerfrgrhrirbZ glRotatefr}r|r~rtZ GL_QUAD_STRIPrsrurvZGL_QUADSrlrmrnror3r r r!r?sv                                         zCubeView.DrawSceneN)rYrZr[r-r6rr9r?r r r r!rws rwcCstdddt}|ddSr4)rZ DocTemplaterwZOpenDocumentFile)templater r r!testksr__main__),sysZ pywin.mfcrZ OpenGL.GLZ OpenGL.GLU ImportErrorprintexitrr+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\rwrrYr r r r!sX   kCy