WINAPI: glDrawPixels OpenGL32.DLL \ надо наверно добавить в ~ygrek\lib\data\opengl.f REQUIRE WFL ~day/wfl/wfl.f NEEDS ~ygrek/lib/wfl/opengl/GLWindow.f REQUIRE CBMP24 ~ygrek/lib/spec/bmp.f : PrepareLight GL_NORMALIZE glEnable DROP \ Enable normalization of normales GL_COLOR_MATERIAL glEnable DROP \ The color is treated as the material color || CGLPoint p || 0.2e 0.2e 0.2e 0.5e p :set4 p :getv GL_AMBIENT GL_LIGHT1 glLightfv DROP \ простой равномерный свет GL_LIGHT1 glEnable DROP \ Enable our light source GL_LIGHTING glEnable DROP \ Enable lighting in general ; CGLWindow SUBCLASS CMyGLWindow : :prepare SUPER :prepare PrepareLight ; ;CLASS \ ----------------------------------------------------------------------- 0 1 -- r 1 -- g 1 -- b CONSTANT /rgb VARIABLE bb : bmp2rgb ( S" pic.bmp" -- addr ) || CBMP24 img D: addr || img :load-file img :size * /rgb * ALLOCATE THROW DUP bb ! addr ! img sizeY @ 0 DO img sizeX @ 0 DO I J img :rgb ( r g b ) addr @ TUCK b C! TUCK g C! TUCK r C! rgb + addr ! LOOP LOOP ; CGLObject SUBCLASS CGLImage : :draw SUPER :draw 1 GL_UNPACK_ALIGNMENT glPixelStorei DROP bb @ GL_UNSIGNED_BYTE GL_RGB 100 100 glDrawPixels DROP ; \ : init: \ S" r.bmp" :load-image ; \ dispose: ; ;CLASS 0 VALUE K 0 VALUE list1 0 VALUE bmp : test ( -- n ) || CMyGLWindow aa CMessageLoop loop || CGLObjectList NewObj TO list1 CGLImage NewObj TO bmp S" r.bmp" bmp2rgb CGLCube NewObj DUP 0.75e :: CGLCube.:resize list1 :: CGLObjectList.:add bmp list1 :: CGLObjectList.:add -15e -15e -40e aa :setShift list1 aa :add 0 aa create DROP SW_SHOW aa showWindow loop run ; test \EOF : save 0 TO SPF-INIT? ['] ANSI>OEM TO ANSI> ['] test MAINX ! S" wflgl.exe" SAVE ;