Rev 5353 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5353 | Rev 8408 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | use32 |
1 | use32 |
2 | org 0x0 |
2 | org 0 |
3 | db 'MENUET01' |
3 | db 'MENUET01' |
4 | dd 0x1 |
- | |
5 | dd start |
- | |
6 | dd i_end |
- | |
7 | dd mem,stacktop |
- | |
8 | dd 0,cur_dir_path |
4 | dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
9 | 5 | ||
10 | include '../../../../../../programs/proc32.inc' |
6 | include '../../../../../proc32.inc' |
11 | include '../../../../../../programs/macros.inc' |
7 | include '../../../../../macros.inc' |
- | 8 | include '../../../../../KOSfuncs.inc' |
|
12 | include '../../../../../../programs/develop/libraries/box_lib/load_lib.mac' |
9 | include '../../../../../load_lib.mac' |
13 | include '../../../../../../programs/dll.inc' |
10 | include '../../../../../dll.inc' |
14 | include '../opengl_const.inc' |
11 | include '../opengl_const.inc' |
Line 15... | Line 12... | ||
15 | 12 | ||
Line 16... | Line 13... | ||
16 | @use_library |
13 | @use_library |
17 | 14 | ||
18 | align 4 |
15 | align 4 |
19 | start: |
- | |
20 | load_library name_tgl, cur_dir_path, library_path, system_path, \ |
16 | start: |
21 | err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
17 | load_library name_tgl, library_path, system_path, import_tinygl |
Line 22... | Line 18... | ||
22 | cmp eax,-1 |
18 | cmp eax,-1 |
Line 23... | Line 19... | ||
23 | jz button.exit |
19 | jz button.exit |
24 | 20 | ||
25 | mcall 40,0x27 |
21 | mcall SF_SET_EVENTS_MASK,0x27 |
26 | 22 | ||
Line 35... | Line 31... | ||
35 | red_win: |
31 | red_win: |
36 | call draw_window |
32 | call draw_window |
Line 37... | Line 33... | ||
37 | 33 | ||
38 | align 4 |
34 | align 4 |
39 | still: |
35 | still: |
40 | mcall 10 |
36 | mcall SF_WAIT_EVENT |
41 | cmp al,1 |
37 | cmp al,1 |
42 | jz red_win |
38 | jz red_win |
43 | cmp al,2 |
39 | cmp al,2 |
44 | jz key |
40 | jz key |
Line 47... | Line 43... | ||
47 | jmp still |
43 | jmp still |
Line 48... | Line 44... | ||
48 | 44 | ||
49 | align 4 |
45 | align 4 |
50 | draw_window: |
46 | draw_window: |
51 | pushad |
47 | pushad |
Line 52... | Line -... | ||
52 | mcall 12,1 |
- | |
53 | 48 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
|
54 | mov edx,0x33ffffff ;0x73ffffff |
49 | |
Line 55... | Line 50... | ||
55 | mcall 0,(50 shl 16)+430,(30 shl 16)+400,,,caption |
50 | mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption |
56 | stdcall [kosglSwapBuffers] |
51 | call [kosglSwapBuffers] |
57 | 52 | ||
Line 58... | Line 53... | ||
58 | mcall 12,2 |
53 | mcall SF_REDRAW,SSF_END_DRAW |
59 | popad |
54 | popad |
60 | ret |
55 | ret |
Line 61... | Line 56... | ||
61 | 56 | ||
62 | align 4 |
57 | align 4 |
Line 63... | Line 58... | ||
63 | key: |
58 | key: |
64 | mcall 2 |
59 | mcall SF_GET_KEY |
65 | 60 | ||
66 | cmp ah,27 ;Esc |
61 | cmp ah,27 ;Esc |
67 | je button.exit |
62 | je button.exit |
68 | 63 | ||
69 | cmp ah,61 ;+ |
64 | cmp ah,61 ;+ |
70 | jne @f |
65 | jne @f |
71 | fld dword[scale] |
66 | fld dword[scale] |
72 | fadd dword[delt_sc] |
67 | fadd dword[delt_sc] |
73 | fstp dword[scale] |
68 | fstp dword[scale] |
74 | call draw_3d |
69 | call draw_3d |
75 | stdcall [kosglSwapBuffers] |
70 | call [kosglSwapBuffers] |
76 | @@: |
71 | @@: |
77 | cmp ah,45 ;- |
72 | cmp ah,45 ;- |
78 | jne @f |
73 | jne @f |
79 | fld dword[scale] |
74 | fld dword[scale] |
80 | fsub dword[delt_sc] |
75 | fsub dword[delt_sc] |
81 | fstp dword[scale] |
76 | fstp dword[scale] |
82 | call draw_3d |
77 | call draw_3d |
83 | stdcall [kosglSwapBuffers] |
78 | call [kosglSwapBuffers] |
84 | @@: |
79 | @@: |
85 | cmp ah,178 ;Up |
80 | cmp ah,178 ;Up |
86 | jne @f |
81 | jne @f |
87 | fld dword[angle_y] |
82 | fld dword[angle_y] |
88 | fadd dword[delt_size] |
83 | fadd dword[delt_size] |
89 | fstp dword[angle_y] |
84 | fstp dword[angle_y] |
90 | call draw_3d |
85 | call draw_3d |
91 | stdcall [kosglSwapBuffers] |
86 | call [kosglSwapBuffers] |
92 | @@: |
87 | @@: |
93 | cmp ah,177 ;Down |
88 | cmp ah,177 ;Down |
94 | jne @f |
89 | jne @f |
95 | fld dword[angle_y] |
90 | fld dword[angle_y] |
96 | fsub dword[delt_size] |
91 | fsub dword[delt_size] |
97 | fstp dword[angle_y] |
92 | fstp dword[angle_y] |
98 | call draw_3d |
93 | call draw_3d |
99 | stdcall [kosglSwapBuffers] |
94 | call [kosglSwapBuffers] |
100 | @@: |
95 | @@: |
101 | cmp ah,176 ;Left |
96 | cmp ah,176 ;Left |
102 | jne @f |
97 | jne @f |
103 | fld dword[angle_z] |
98 | fld dword[angle_z] |
104 | fadd dword[delt_size] |
99 | fadd dword[delt_size] |
105 | fstp dword[angle_z] |
100 | fstp dword[angle_z] |
106 | call draw_3d |
101 | call draw_3d |
107 | stdcall [kosglSwapBuffers] |
102 | call [kosglSwapBuffers] |
108 | @@: |
103 | @@: |
109 | cmp ah,179 ;Right |
104 | cmp ah,179 ;Right |
110 | jne @f |
105 | jne @f |
Line 111... | Line 106... | ||
111 | fld dword[angle_z] |
106 | fld dword[angle_z] |
Line 112... | Line 107... | ||
112 | fsub dword[delt_size] |
107 | fsub dword[delt_size] |
113 | fstp dword[angle_z] |
108 | fstp dword[angle_z] |
114 | call draw_3d |
109 | call draw_3d |
115 | stdcall [kosglSwapBuffers] |
110 | call [kosglSwapBuffers] |
116 | @@: |
111 | @@: |
117 | 112 | ||
118 | jmp still |
113 | jmp still |
Line 119... | Line 114... | ||
119 | 114 | ||
120 | align 4 |
115 | align 4 |
121 | button: |
- | |
122 | mcall 17 |
- | |
123 | cmp ah,1 |
- | |
Line 124... | Line 116... | ||
124 | jne still |
116 | button: |
125 | .exit: |
117 | mcall SF_GET_BUTTON |
126 | mcall -1 |
118 | cmp ah,1 |
127 | 119 | jne still |
|
Line 128... | Line 120... | ||
128 | 120 | .exit: |
|
129 | align 4 |
121 | mcall SF_TERMINATE_PROCESS |
130 | caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
122 | |
131 | align 4 |
123 | |
Line 150... | Line 142... | ||
150 | stdcall [glEnableClientState], GL_COLOR_ARRAY ;включаем режим рисования цветов |
142 | stdcall [glEnableClientState], GL_COLOR_ARRAY ;включаем режим рисования цветов |
151 | stdcall [glDrawArrays], GL_POLYGON, 0, 4 ;рисование полигона из 4-х вершин (равносильно вызову 8-ми функций: 4 - для вершин, 4 - для цетов) |
143 | stdcall [glDrawArrays], GL_POLYGON, 0, 4 ;рисование полигона из 4-х вершин (равносильно вызову 8-ми функций: 4 - для вершин, 4 - для цетов) |
152 | stdcall [glDisableClientState], GL_COLOR_ARRAY ;отключаем режим рисования цветов |
144 | stdcall [glDisableClientState], GL_COLOR_ARRAY ;отключаем режим рисования цветов |
153 | stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин |
145 | stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин |
Line 154... | Line 146... | ||
154 | 146 | ||
155 | stdcall [glPopMatrix] |
147 | call [glPopMatrix] |
Line 156... | Line 148... | ||
156 | ret |
148 | ret |
157 | 149 | ||
158 | align 4 |
150 | align 4 |
Line 166... | Line 158... | ||
166 | Vertex dd -0.9, -0.9, -0.9, 0.9, 0.9, 0.9, 0.9, -0.9 ;4 вершины (по 2 координаты) |
158 | Vertex dd -0.9, -0.9, -0.9, 0.9, 0.9, 0.9, 0.9, -0.9 ;4 вершины (по 2 координаты) |
167 | Colors dd 0.0, 0.5, 1.0, 1.0, 0.0, 0.5, 1.0, 1.0, 1.0, 0.5, 1.0, 0.0 ;4 цвета (по 3 параметра) |
159 | Colors dd 0.0, 0.5, 1.0, 1.0, 0.0, 0.5, 1.0, 1.0, 1.0, 0.5, 1.0, 0.0 ;4 цвета (по 3 параметра) |
Line 168... | Line 160... | ||
168 | 160 | ||
169 | ;-------------------------------------------------- |
161 | ;-------------------------------------------------- |
170 | align 4 |
162 | align 4 |
Line 171... | Line 163... | ||
171 | import_lib_tinygl: |
163 | import_tinygl: |
172 | 164 | ||
173 | macro E_LIB n |
165 | macro E_LIB n |
174 | { |
166 | { |
Line 183... | Line 175... | ||
183 | include '../export.inc' |
175 | include '../export.inc' |
Line 184... | Line 176... | ||
184 | 176 | ||
185 | ;-------------------------------------------------- |
177 | ;-------------------------------------------------- |
186 | system_path db '/sys/lib/' |
178 | system_path db '/sys/lib/' |
187 | name_tgl db 'tinygl.obj',0 |
- | |
188 | err_message_found_lib db 'Sorry I cannot load library tinygl.obj',0 |
- | |
189 | head_f_i: |
- | |
190 | head_f_l db 'System error',0 |
- | |
191 | err_message_import db 'Error on load import library tinygl.obj',0 |
179 | name_tgl db 'tinygl.obj',0 |
Line -... | Line 180... | ||
- | 180 | ;-------------------------------------------------- |
|
192 | ;-------------------------------------------------- |
181 | |
- | 182 | align 4 |
|
- | 183 | i_end: |
|
- | 184 | ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
|
193 | 185 | cur_dir_path rb 4096 |
|
194 | i_end: |
186 | library_path rb 4096 |
195 | rb 4096 |
- | |
196 | stacktop: |
- | |
197 | cur_dir_path: |
- | |
198 | rb 4096 |
- | |
199 | library_path: |
187 | rb 4096 |