Rev 6287 | Rev 8409 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6287 | Rev 8408 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | use32 |
1 | use32 |
2 | org 0x0 |
2 | org 0 |
3 | db 'MENUET01' |
3 | db 'MENUET01' |
4 | dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
4 | dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | include '../../../../../proc32.inc' |
6 | include '../../../../../proc32.inc' |
7 | include '../../../../../macros.inc' |
7 | include '../../../../../macros.inc' |
8 | include '../../../../../KOSfuncs.inc' |
8 | include '../../../../../KOSfuncs.inc' |
9 | include '../../../../../develop/libraries/box_lib/load_lib.mac' |
9 | include '../../../../../load_lib.mac' |
10 | include '../../../../../dll.inc' |
10 | include '../../../../../dll.inc' |
Line 11... | Line 11... | ||
11 | include '../opengl_const.inc' |
11 | include '../opengl_const.inc' |
Line 12... | Line 12... | ||
12 | 12 | ||
13 | @use_library |
13 | @use_library |
14 | 14 | ||
15 | align 4 |
- | |
16 | start: |
15 | align 4 |
17 | load_library name_tgl, cur_dir_path, library_path, system_path, \ |
16 | start: |
Line 18... | Line 17... | ||
18 | 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 60... | Line 59... | ||
60 | align 4 |
59 | align 4 |
61 | draw_window: |
60 | draw_window: |
62 | pushad |
61 | pushad |
63 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
62 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
Line 64... | Line -... | ||
64 | - | ||
65 | mov edx,0x33ffffff |
63 | |
66 | mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,,,caption |
64 | mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption |
Line 67... | Line 65... | ||
67 | stdcall [kosglSwapBuffers] |
65 | call [kosglSwapBuffers] |
68 | 66 | ||
69 | mcall SF_REDRAW,SSF_END_DRAW |
67 | mcall SF_REDRAW,SSF_END_DRAW |
Line 81... | Line 79... | ||
81 | jne @f |
79 | jne @f |
82 | fld dword[scale] |
80 | fld dword[scale] |
83 | fadd dword[delt_sc] |
81 | fadd dword[delt_sc] |
84 | fstp dword[scale] |
82 | fstp dword[scale] |
85 | call draw_3d |
83 | call draw_3d |
86 | stdcall [kosglSwapBuffers] |
84 | call [kosglSwapBuffers] |
87 | @@: |
85 | @@: |
88 | cmp ah,45 ;- |
86 | cmp ah,45 ;- |
89 | jne @f |
87 | jne @f |
90 | fld dword[scale] |
88 | fld dword[scale] |
91 | fsub dword[delt_sc] |
89 | fsub dword[delt_sc] |
92 | fstp dword[scale] |
90 | fstp dword[scale] |
93 | call draw_3d |
91 | call draw_3d |
94 | stdcall [kosglSwapBuffers] |
92 | call [kosglSwapBuffers] |
95 | @@: |
93 | @@: |
96 | cmp ah,178 ;Up |
94 | cmp ah,178 ;Up |
97 | jne @f |
95 | jne @f |
98 | fld dword[angle_y] |
96 | fld dword[angle_y] |
99 | fadd dword[delt_size] |
97 | fadd dword[delt_size] |
100 | fstp dword[angle_y] |
98 | fstp dword[angle_y] |
101 | call draw_3d |
99 | call draw_3d |
102 | stdcall [kosglSwapBuffers] |
100 | call [kosglSwapBuffers] |
103 | @@: |
101 | @@: |
104 | cmp ah,177 ;Down |
102 | cmp ah,177 ;Down |
105 | jne @f |
103 | jne @f |
106 | fld dword[angle_y] |
104 | fld dword[angle_y] |
107 | fsub dword[delt_size] |
105 | fsub dword[delt_size] |
108 | fstp dword[angle_y] |
106 | fstp dword[angle_y] |
109 | call draw_3d |
107 | call draw_3d |
110 | stdcall [kosglSwapBuffers] |
108 | call [kosglSwapBuffers] |
111 | @@: |
109 | @@: |
112 | cmp ah,176 ;Left |
110 | cmp ah,176 ;Left |
113 | jne @f |
111 | jne @f |
114 | fld dword[angle_x] |
112 | fld dword[angle_x] |
115 | fadd dword[delt_size] |
113 | fadd dword[delt_size] |
116 | fstp dword[angle_x] |
114 | fstp dword[angle_x] |
117 | call draw_3d |
115 | call draw_3d |
118 | stdcall [kosglSwapBuffers] |
116 | call [kosglSwapBuffers] |
119 | @@: |
117 | @@: |
120 | cmp ah,179 ;Right |
118 | cmp ah,179 ;Right |
121 | jne @f |
119 | jne @f |
122 | fld dword[angle_x] |
120 | fld dword[angle_x] |
123 | fsub dword[delt_size] |
121 | fsub dword[delt_size] |
124 | fstp dword[angle_x] |
122 | fstp dword[angle_x] |
125 | call draw_3d |
123 | call draw_3d |
126 | stdcall [kosglSwapBuffers] |
124 | call [kosglSwapBuffers] |
127 | @@: |
125 | @@: |
Line 128... | Line 126... | ||
128 | 126 | ||
Line 129... | Line 127... | ||
129 | jmp still |
127 | jmp still |
Line 137... | Line 135... | ||
137 | mcall SF_TERMINATE_PROCESS |
135 | mcall SF_TERMINATE_PROCESS |
Line 138... | Line 136... | ||
138 | 136 | ||
139 | 137 | ||
140 | align 4 |
- | |
141 | caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
- | |
142 | align 4 |
- | |
Line 143... | Line 138... | ||
143 | ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
138 | align 4 |
144 | ;sizeof.TinyGLContext = 28 |
139 | caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
145 | 140 | ||
146 | align 4 |
141 | align 4 |
Line 147... | Line 142... | ||
147 | draw_3d: |
142 | draw_3d: |
148 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
143 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
149 | stdcall [glPushMatrix] |
144 | call [glPushMatrix] |
150 | 145 | ||
151 | ;масштаб и повороты |
146 | ;масштаб и повороты |
152 | stdcall [glTranslatef], 0.0,0.0,0.5 |
147 | stdcall [glTranslatef], 0.0,0.0,0.5 |
Line 153... | Line 148... | ||
153 | stdcall [glScalef], [scale], [scale], [scale] |
148 | stdcall [glScalef], [scale], [scale], [scale] |
154 | stdcall [glRotatef], [angle_z],0.0,0.0,1.0 |
149 | stdcall [glRotatef], [angle_z],0.0,0.0,1.0 |
155 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
150 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
156 | stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
151 | stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
157 | 152 | ||
158 | ;рисование через тндексный массив |
153 | ;рисование через индексный массив |
159 | mov eax,house_3ds ;начало внедренного файла 3ds |
154 | mov eax,house_3ds ;начало внедренного файла 3ds |
Line 160... | Line 155... | ||
160 | add eax,0xeb ;смещение по которому идут координаты вершин (получено с использованием программы info_3ds) |
155 | add eax,0xeb ;смещение по которому идут координаты вершин (получено с использованием программы info_3ds) |
161 | stdcall [glVertexPointer], 3, GL_FLOAT, 0, eax ;задаем массив для вершин, 3 - число координат для одной вершины |
156 | stdcall [glVertexPointer], 3, GL_FLOAT, 0, eax ;задаем массив для вершин, 3 - число координат для одной вершины |
Line 162... | Line 157... | ||
162 | stdcall [glEnableClientState], GL_VERTEX_ARRAY ;включаем режим рисования вершин |
157 | stdcall [glEnableClientState], GL_VERTEX_ARRAY ;включаем режим рисования вершин |
163 | stdcall [glDrawElements], GL_TRIANGLES, 0x1a6*3, GL_UNSIGNED_SHORT, Indices ;mode, count, type, *indices |
158 | stdcall [glDrawElements], GL_TRIANGLES, 0x1a6*3, GL_UNSIGNED_SHORT, Indices ;mode, count, type, *indices |
164 | stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин |
159 | stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин |
Line 197... | Line 192... | ||
197 | include '../export.inc' |
192 | include '../export.inc' |
Line 198... | Line 193... | ||
198 | 193 | ||
199 | ;-------------------------------------------------- |
194 | ;-------------------------------------------------- |
200 | system_path db '/sys/lib/' |
195 | system_path db '/sys/lib/' |
201 | name_tgl db 'tinygl.obj',0 |
- | |
202 | err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,0 |
- | |
203 | head_f_i: |
- | |
204 | head_f_l db 'System error',0 |
- | |
205 | err_message_import db 'Error on load import library ',39,'tinygl.obj',39,0 |
196 | name_tgl db 'tinygl.obj',0 |
Line -... | Line 197... | ||
- | 197 | ;-------------------------------------------------- |
|
206 | ;-------------------------------------------------- |
198 | |
- | 199 | align 4 |
|
- | 200 | i_end: |
|
- | 201 | ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
|
207 | 202 | cur_dir_path rb 4096 |
|
208 | i_end: |
203 | library_path rb 4096 |
209 | rb 4096 |
- | |
210 | stacktop: |
- | |
211 | cur_dir_path: |
- | |
212 | rb 4096 |
- | |
213 | library_path: |
204 | rb 4096 |