Сейчас с freeglut начал тестировать та же проблема.
В общем, Хищник прав
Лучше использовать массивы.
У меня отчего-то
glColor3i тупо не работал.
стоило заменить
glColor3f и закинуть флоаты на стек данных, как сразу все нарисовалось
Код:
WINAPI: glutInit FREEGLUT
WINAPI: glutInitDisplayMode FREEGLUT
WINAPI: glutInitWindowSize FREEGLUT
WINAPI: glutInitWindowPosition FREEGLUT
WINAPI: glutCreateWindow FREEGLUT
WINAPI: glutReshapeFunc FREEGLUT
WINAPI: glutDisplayFunc FREEGLUT
WINAPI: glutSwapBuffers FREEGLUT
WINAPI: glutMainLoop FREEGLUT
WINAPI: glDrawPixels OPENGL32
WINAPI: glViewport OPENGL32
WINAPI: glMatrixMode OPENGL32
WINAPI: glLoadIdentity OPENGL32
WINAPI: glClearColor OPENGL32
WINAPI: glClear OPENGL32
WINAPI: glColor3i OPENGL32
WINAPI: glColor3f OPENGL32
WINAPI: glVertex3i OPENGL32
WINAPI: glVertex2i OPENGL32
WINAPI: glVertex2f OPENGL32
WINAPI: glVertex2fv OPENGL32
WINAPI: glVertex2iv OPENGL32
WINAPI: glBegin OPENGL32
WINAPI: glEnd OPENGL32
WINAPI: glOrtho OPENGL32
WINAPI: glLineWidth OPENGL32
WINAPI: gluOrtho2D GLU32
~ER/LOCALS/R-LOCAL.F CONTEXT @ ALT: TEMP-OUT
REQUIRE FLOAT ~ER/FLOAT/FLOAT.F ALSO FLOAT ' PREVIOUS >R
\ калбеки в нове настроены на самоочищение от параметров
\ в этом каллбеке 2 параметра, их очищать не надо. это сделает винда
\ т. к. снимает вызвавший
0 CALLBACK: RESHARE
DUP CELL+ @ SWAP @ { h w }
h w 0 0 glViewport
0x1701 glMatrixMode
glLoadIdentity
\ h int>F FD> 0,0 FD> \ работает и без этого
\ w int>F FD> 0,0 FD>
\ gluOrtho2D
0x1700 glMatrixMode
glLoadIdentity
;
: F, F> , ;
CREATE L1 0,5 F, 0,5 F,
CREATE L2 -0,5 F, 0,5 F,
CREATE L3 -0,2 F, -0,2 F,
CREATE L4 0,5 F, -0,5 F,
0 CALLBACK: DISP
0x4000 0x100 OR glClear \ 0x4000 GL_COLOR_BUFFER_BIT
255.0 F> 255.0 F> 0.0 F> glColor3f \ 3i ,сука, не работает!!!
7 glBegin \ квадрат 7 1 линия
L1 glVertex2fv
255.0 F> 0.0 F> 255.0 F> glColor3f
L2 glVertex2fv
0.0 F> 255.0 F> 255.0 F> glColor3f
L3 glVertex2fv
0.0 F> 44.0 F> 12.0 F> glColor3f
L4 glVertex2fv
glEnd
glutSwapBuffers
;
: TEST
0 HERE glutInit
2 glutInitDisplayMode \ 0x0002 GLUT_DOUBLE - двойная буфферизация
600 800 glutInitWindowSize
S" GL-TEST" DROP glutCreateWindow
['] RESHARE glutReshapeFunc
['] DISP glutDisplayFunc
glutMainLoop
;
TEST