4,21 → 4,21 |
call gl_get_context |
xor ebx,ebx |
|
cmp dword[eax+offs_cont_render_mode],GL_RENDER |
cmp dword[eax+GLContext.render_mode],GL_RENDER |
je .e_sw_1 |
cmp dword[eax+offs_cont_render_mode],GL_SELECT |
cmp dword[eax+GLContext.render_mode],GL_SELECT |
jne .def_1 |
cmp dword[eax+offs_cont_select_overflow],0 |
cmp dword[eax+GLContext.select_overflow],0 |
je @f |
sub ebx,[eax+offs_cont_select_hits] |
sub ebx,[eax+GLContext.select_hits] |
jmp .else_e |
@@: |
mov ebx,[eax+offs_cont_select_hits] |
mov ebx,[eax+GLContext.select_hits] |
.else_e: |
mov dword[eax+offs_cont_select_overflow],0 |
mov ecx,[eax+offs_cont_select_buffer] |
mov dword[eax+offs_cont_select_ptr],ecx |
mov dword[eax+offs_cont_name_stack_size],0 |
mov dword[eax+GLContext.select_overflow],0 |
mov ecx,[eax+GLContext.select_buffer] |
mov dword[eax+GLContext.select_ptr],ecx |
mov dword[eax+GLContext.name_stack_size],0 |
jmp .e_sw_1 |
.def_1: |
; assert(0); |
25,18 → 25,18 |
.e_sw_1: |
cmp dword[mode],GL_RENDER |
jne @f |
mov dword[eax+offs_cont_render_mode],GL_RENDER |
mov dword[eax+GLContext.render_mode],GL_RENDER |
jmp .e_sw_2 |
@@: |
cmp dword[mode],GL_SELECT |
jne .def_2 |
mov dword[eax+offs_cont_render_mode],GL_SELECT |
mov dword[eax+GLContext.render_mode],GL_SELECT |
; assert( c->select_buffer != NULL); |
mov ecx,[eax+offs_cont_select_buffer] |
mov dword[eax+offs_cont_select_ptr],ecx |
mov dword[eax+offs_cont_select_hits],0 |
mov dword[eax+offs_cont_select_overflow],0 |
mov dword[eax+offs_cont_select_hit],0 ;NULL |
mov ecx,[eax+GLContext.select_buffer] |
mov dword[eax+GLContext.select_ptr],ecx |
mov dword[eax+GLContext.select_hits],0 |
mov dword[eax+GLContext.select_overflow],0 |
mov dword[eax+GLContext.select_hit],0 ;NULL |
jmp .e_sw_2 |
.def_2: |
; assert(0); |
52,9 → 52,9 |
; assert(c->render_mode != GL_SELECT); |
|
mov ebx,[buf] |
mov dword[eax+offs_cont_select_buffer],ebx |
mov dword[eax+GLContext.select_buffer],ebx |
mov ebx,[size] |
mov dword[eax+offs_cont_select_size],ebx |
mov dword[eax+GLContext.select_size],ebx |
ret |
endp |
|
61,10 → 61,10 |
align 4 |
proc glopInitNames uses eax, context:dword, p:dword |
mov eax,[context] |
cmp dword[eax+offs_cont_render_mode],GL_SELECT |
cmp dword[eax+GLContext.render_mode],GL_SELECT |
jne @f |
mov dword[eax+offs_cont_name_stack_size],0 |
mov dword[eax+offs_cont_select_hit],0 ;=NULL |
mov dword[eax+GLContext.name_stack_size],0 |
mov dword[eax+GLContext.select_hit],0 ;=NULL |
@@: |
ret |
endp |
72,17 → 72,17 |
align 4 |
proc glopPushName uses eax ebx, context:dword, p:dword |
mov eax,[context] |
cmp dword[eax+offs_cont_render_mode],GL_SELECT |
cmp dword[eax+GLContext.render_mode],GL_SELECT |
jne @f |
; assert(c->name_stack_size<MAX_NAME_STACK_DEPTH); |
mov dword[eax+offs_cont_select_hit],0 ;=NULL |
inc dword[eax+offs_cont_name_stack_size] |
mov ebx,dword[eax+offs_cont_name_stack_size] |
mov dword[eax+GLContext.select_hit],0 ;=NULL |
inc dword[eax+GLContext.name_stack_size] |
mov ebx,dword[eax+GLContext.name_stack_size] |
shl ebx,2 |
add ebx,eax |
mov eax,[p] |
mov eax,[eax+4] |
mov dword[ebx+offs_cont_name_stack],eax ;context.name_stack[context.name_stack_size++]=p[1] |
mov dword[ebx+GLContext.name_stack],eax ;context.name_stack[context.name_stack_size++]=p[1] |
@@: |
ret |
endp |
90,11 → 90,11 |
align 4 |
proc glopPopName uses eax, context:dword, p:dword |
mov eax,[context] |
cmp dword[eax+offs_cont_render_mode],GL_SELECT |
cmp dword[eax+GLContext.render_mode],GL_SELECT |
jne @f |
; assert(c->name_stack_size>0); |
dec dword[eax+offs_cont_name_stack_size] |
mov dword[eax+offs_cont_select_hit],0 ;=NULL |
dec dword[eax+GLContext.name_stack_size] |
mov dword[eax+GLContext.select_hit],0 ;=NULL |
@@: |
ret |
endp |
102,17 → 102,17 |
align 4 |
proc glopLoadName uses eax ebx, context:dword, p:dword |
mov eax,[context] |
cmp dword[eax+offs_cont_render_mode],GL_SELECT |
cmp dword[eax+GLContext.render_mode],GL_SELECT |
jne @f |
; assert(c->name_stack_size>0); |
mov dword[eax+offs_cont_select_hit],0 ;=NULL |
mov ebx,dword[eax+offs_cont_name_stack_size] |
mov dword[eax+GLContext.select_hit],0 ;=NULL |
mov ebx,dword[eax+GLContext.name_stack_size] |
dec ebx |
shl ebx,2 |
add ebx,eax |
mov eax,[p] |
mov eax,[eax+4] |
mov dword[ebx+offs_cont_name_stack],eax ;context.name_stack[context.name_stack_size-1]=p[1] |
mov dword[ebx+GLContext.name_stack],eax ;context.name_stack[context.name_stack_size-1]=p[1] |
@@: |
ret |
endp |
123,23 → 123,23 |
; int i; |
mov eax,[context] |
|
cmp dword[eax+offs_cont_select_overflow],0 |
cmp dword[eax+GLContext.select_overflow],0 |
jne .end_f ;if (!context.select_overflow) |
cmp dword[eax+offs_cont_select_hit],0 ;if (context.select_hit==NULL) |
cmp dword[eax+GLContext.select_hit],0 ;if (context.select_hit==NULL) |
jne .els_0 |
mov ecx,[eax+offs_cont_name_stack_size] |
mov ebx,[eax+offs_cont_select_ptr] |
sub ebx,[eax+offs_cont_select_buffer] |
mov ecx,[eax+GLContext.name_stack_size] |
mov ebx,[eax+GLContext.select_ptr] |
sub ebx,[eax+GLContext.select_buffer] |
sub ebx,3 |
sub ebx,ecx |
cmp ebx,[eax+offs_cont_select_size] |
cmp ebx,[eax+GLContext.select_size] |
jle .els_1 |
mov dword[eax+offs_cont_select_overflow],1 |
mov dword[eax+GLContext.select_overflow],1 |
jmp .end_f |
.els_1: |
mov ebx,[eax+offs_cont_select_ptr] |
mov [eax+offs_cont_select_hit],ebx |
mov edx,[eax+offs_cont_name_stack_size] |
mov ebx,[eax+GLContext.select_ptr] |
mov [eax+GLContext.select_hit],ebx |
mov edx,[eax+GLContext.name_stack_size] |
mov [ebx],edx |
add ebx,4 |
mov edx,[zmin] |
149,19 → 149,19 |
mov [ebx],edx |
add ebx,4 |
; for(i=0;i<ecx;i++) *ptr++=c->name_stack[i]; |
mov [eax+offs_cont_select_ptr],ebx |
inc dword[eax+offs_cont_select_hits] |
mov [eax+GLContext.select_ptr],ebx |
inc dword[eax+GLContext.select_hits] |
jmp .end_f |
.els_0: |
mov ebx,[zmin] |
cmp dword[eax+offs_cont_select_hit+4],ebx |
cmp dword[eax+GLContext.select_hit+4],ebx |
jle @f |
mov dword[eax+offs_cont_select_hit+4],ebx |
mov dword[eax+GLContext.select_hit+4],ebx |
@@: |
mov ebx,[zmax] |
cmp dword[eax+offs_cont_select_hit+8],ebx |
cmp dword[eax+GLContext.select_hit+8],ebx |
jge .end_f |
mov dword[eax+offs_cont_select_hit+8],ebx |
mov dword[eax+GLContext.select_hit+8],ebx |
.end_f: |
ret |
endp |