Rev 2759 | Rev 2920 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2759 | Rev 2815 | ||
---|---|---|---|
Line 2984... | Line 2984... | ||
2984 | .end_c0: |
2984 | .end_c0: |
2985 | ret |
2985 | ret |
2986 | endp |
2986 | endp |
Line 2987... | Line 2987... | ||
2987 | 2987 | ||
- | 2988 | ;description: |
|
- | 2989 | ; äãªæ¨ï à¨áãîé ï ¢®ªá¥«ìë© ®¡ê¥ªâ (¢¨¤ 1 £à ì) |
|
- | 2990 | ;input: |
|
- | 2991 | ; buf_i - ¡ãä¥à ¢ ª®â®à®¬ à¨áã¥âáï (24 ¡¨â ) |
|
- | 2992 | ; buf_z - ¡ãä¥à £«ã¡¨ë (32 ¡¨â ¯® ç¨á«ã ¯¨ªá¥«¥© ¤®«¦¥ ᮢ¯ ¤ âì á buf_i) |
|
- | 2993 | align 4 |
|
- | 2994 | proc buf_vox_obj_draw_1g, buf_i:dword, buf_z:dword, v_obj:dword, coord_x:dword,\ |
|
- | 2995 | coord_y:dword, k_scale:dword |
|
- | 2996 | cmp [k_scale],0 |
|
- | 2997 | jl .end_f |
|
- | 2998 | pushad |
|
- | 2999 | mov edi,[buf_i] |
|
- | 3000 | cmp buf2d_bits,24 |
|
- | 3001 | jne .error1 |
|
- | 3002 | mov edi,[buf_z] |
|
- | 3003 | cmp buf2d_bits,32 |
|
- | 3004 | jne .error2 |
|
- | 3005 | ||
- | 3006 | mov ecx,[k_scale] |
|
- | 3007 | mov ebx,[coord_x] |
|
- | 3008 | mov edx,[coord_y] |
|
- | 3009 | mov edi,[v_obj] |
|
- | 3010 | add edi,vox_offs_data |
|
- | 3011 | xor esi,esi |
|
- | 3012 | stdcall draw_sub_vox_obj_1g, [buf_i],[buf_z],[v_obj] |
|
- | 3013 | ||
- | 3014 | jmp .end_0 |
|
- | 3015 | .error1: |
|
- | 3016 | stdcall print_err,sz_buf2d_vox_obj_draw_1g,txt_err_n24b |
|
- | 3017 | jmp .end_0 |
|
- | 3018 | .error2: |
|
- | 3019 | stdcall print_err,sz_buf2d_vox_obj_draw_1g,txt_err_n32b |
|
- | 3020 | .end_0: |
|
- | 3021 | popad |
|
- | 3022 | .end_f: |
|
- | 3023 | ret |
|
- | 3024 | endp |
|
- | 3025 | ||
- | 3026 | ;input: |
|
- | 3027 | ; ebx - coord_x |
|
- | 3028 | ; edx - coord_y |
|
- | 3029 | ; esi - coord_z |
|
- | 3030 | ; ecx - ã஢¥ì ⥪ã襣® 㧫 |
|
- | 3031 | ; edi - 㪠§ â¥«ì ¤ ë¥ ¢®ªá¥«ì®£® ®¡ê¥ªâ |
|
- | 3032 | align 4 |
|
- | 3033 | proc draw_sub_vox_obj_1g, buf_i:dword, buf_z:dword, v_obj:dword |
|
- | 3034 | cmp byte[edi+3],0 ;ᬮâਬ ¥áâì «¨ ¯®¤¤¥à¥¢ìï |
|
- | 3035 | je .sub_trees |
|
- | 3036 | ||
- | 3037 | ;¯à®à¨á®¢ª à ¬ª¨ ¥á«¨ à §¬¥à 㧫 = 1 |
|
- | 3038 | cmp ecx,0 |
|
- | 3039 | jne @f |
|
- | 3040 | ;¯à®¢¥àª £«ã¡¨ë esi |
|
- | 3041 | stdcall buf_get_pixel, [buf_z], ebx,edx, esi |
|
- | 3042 | cmp eax,esi |
|
- | 3043 | jge @f |
|
- | 3044 | push ecx |
|
- | 3045 | mov ecx,dword[edi] |
|
- | 3046 | and ecx,0xffffff |
|
- | 3047 | stdcall buf_set_pixel, [buf_i], ebx,edx, ecx |
|
- | 3048 | stdcall buf_set_pixel, [buf_z], ebx,edx, esi |
|
- | 3049 | pop ecx |
|
- | 3050 | @@: |
|
- | 3051 | ||
- | 3052 | ;४ãàá¨¢ë© ¯¥à¥¡®à ¯®¤¤¥à¥¢ì¥¢ |
|
- | 3053 | push edx |
|
- | 3054 | ;¢å®¤ ¢ãâàì 㧫 |
|
- | 3055 | dec ecx |
|
- | 3056 | ||
- | 3057 | mov eax,1 |
|
- | 3058 | cmp ecx,1 |
|
- | 3059 | jl @f |
|
- | 3060 | shl eax,cl |
|
- | 3061 | @@: |
|
- | 3062 | ||
- | 3063 | add edx,eax ;ª®à¥ªâ¨à®¢ª ¢ëá®âë ¯®¤ ¢®ªá¥«ì ¨¦¥£® ã஢ï |
|
- | 3064 | ||
- | 3065 | mov ah,byte[edi+3] |
|
- | 3066 | add edi,4 |
|
- | 3067 | mov al,8 |
|
- | 3068 | .cycle: |
|
- | 3069 | bt ax,8 ;â¥áâ¨à㥬 ⮫쪮 ah |
|
- | 3070 | jnc .c_next |
|
- | 3071 | push eax ebx edx esi |
|
- | 3072 | stdcall vox_corect_coords_pl, [v_obj],1 |
|
- | 3073 | stdcall draw_sub_vox_obj_1g, [buf_i],[buf_z],[v_obj] |
|
- | 3074 | pop esi edx ebx eax |
|
- | 3075 | .c_next: |
|
- | 3076 | shr ah,1 |
|
- | 3077 | dec al |
|
- | 3078 | jnz .cycle |
|
- | 3079 | ;¢ë室 ¨§ 㧫 |
|
- | 3080 | inc ecx |
|
- | 3081 | pop edx |
|
- | 3082 | jmp .end_f |
|
- | 3083 | .sub_trees: |
|
- | 3084 | cmp ecx,0 |
|
- | 3085 | jl .end_0 ;¥ à¨á㥬 ®ç¥ì ¬ «¥ìª¨¥ ¢®ªá¥«¨ |
|
- | 3086 | ||
- | 3087 | ;à¨á㥬 㧥« |
|
- | 3088 | mov eax,[edi] |
|
- | 3089 | and eax,0xffffff |
|
- | 3090 | ||
- | 3091 | cmp ecx,1 |
|
- | 3092 | jl @f |
|
- | 3093 | ;ª¢ ¤à â ¡®«ìè¥ â¥ªã饣® ¬ áèâ ¡ |
|
- | 3094 | stdcall vox_draw_square_1g, [buf_i],[buf_z],eax |
|
- | 3095 | jmp .end_0 |
|
- | 3096 | @@: |
|
- | 3097 | ;ª¢ ¤à â ⥪ã饣® ¬ áèâ ¡ |
|
- | 3098 | push ecx |
|
- | 3099 | mov ecx,eax |
|
- | 3100 | stdcall buf_get_pixel, [buf_z], ebx,edx |
|
- | 3101 | cmp eax,esi |
|
- | 3102 | jge .end_1 |
|
- | 3103 | stdcall buf_set_pixel, [buf_i], ebx,edx,ecx |
|
- | 3104 | stdcall buf_set_pixel, [buf_z], ebx,edx,esi |
|
- | 3105 | .end_1: |
|
- | 3106 | pop ecx |
|
- | 3107 | .end_0: |
|
- | 3108 | add edi,4 |
|
- | 3109 | .end_f: |
|
- | 3110 | ret |
|
- | 3111 | endp |
|
- | 3112 | ||
- | 3113 | ;output: |
|
- | 3114 | ; eax - à §àãè ¥âáï |
|
- | 3115 | align 4 |
|
- | 3116 | proc vox_draw_square_1g uses ecx edx edi, buf_i:dword, buf_z:dword, color:dword |
|
- | 3117 | locals |
|
- | 3118 | img_size dd ? |
|
- | 3119 | coord_y dd ? |
|
- | 3120 | endl |
|
- | 3121 | mov edi,[buf_z] |
|
- | 3122 | xor eax,eax |
|
- | 3123 | inc eax |
|
- | 3124 | shl eax,cl |
|
- | 3125 | mov [img_size],eax |
|
- | 3126 | mov [coord_y],eax |
|
- | 3127 | .cycle_0: |
|
- | 3128 | push ebx |
|
- | 3129 | mov ecx,[img_size] |
|
- | 3130 | cld |
|
- | 3131 | .cycle_1: |
|
- | 3132 | push ecx |
|
- | 3133 | mov ecx,edx |
|
- | 3134 | call get_pixel_32 |
|
- | 3135 | pop ecx |
|
- | 3136 | cmp eax,esi |
|
- | 3137 | jge @f |
|
- | 3138 | stdcall buf_set_pixel, [buf_i], ebx,edx, [color] |
|
- | 3139 | stdcall buf_set_pixel, edi, ebx,edx, esi |
|
- | 3140 | @@: |
|
- | 3141 | inc ebx |
|
- | 3142 | loop .cycle_1 |
|
- | 3143 | pop ebx |
|
- | 3144 | inc edx |
|
- | 3145 | dec dword[coord_y] |
|
- | 3146 | jnz .cycle_0 |
|
- | 3147 | ret |
|
- | 3148 | endp |
|
- | 3149 | ||
2988 | ;description: |
3150 | ;description: |
2989 | ; äãªæ¨ï à¨áãîé ï ¢®ªá¥«ìë© ®¡ê¥ªâ |
3151 | ; äãªæ¨ï à¨áãîé ï ¢®ªá¥«ìë© ®¡ê¥ªâ (¢¨¤® 3 £à ¨) |
2990 | ;input: |
3152 | ;input: |
2991 | ; buf_i - ¡ãä¥à ¢ ª®â®à®¬ à¨áã¥âáï (24 ¡¨â ) |
3153 | ; buf_i - ¡ãä¥à ¢ ª®â®à®¬ à¨áã¥âáï (24 ¡¨â ) |
2992 | ; buf_z - ¡ãä¥à £«ã¡¨ë (32 ¡¨â ¯® ç¨á«ã ¯¨ªá¥«¥© ¤®«¦¥ ᮢ¯ ¤ âì á buf_i) |
3154 | ; buf_z - ¡ãä¥à £«ã¡¨ë (32 ¡¨â ¯® ç¨á«ã ¯¨ªá¥«¥© ¤®«¦¥ ᮢ¯ ¤ âì á buf_i) |
2993 | ; h_br - ª¨áâì á ¨§®¡à ¦¥¨ï¬¨ ¢®ªá¥«¥© (32 ¡¨â ) |
3155 | ; h_br - ª¨áâì á ¨§®¡à ¦¥¨ï¬¨ ¢®ªá¥«¥© (32 ¡¨â ) |
Line 2998... | Line 3160... | ||
2998 | coord_x:dword, coord_y:dword, coord_z:dword, k_scale:dword |
3160 | coord_x:dword, coord_y:dword, coord_z:dword, k_scale:dword |
2999 | pushad |
3161 | pushad |
3000 | mov edi,[v_obj] |
3162 | mov edi,[v_obj] |
3001 | mov ecx,[k_scale] |
3163 | mov ecx,[k_scale] |
3002 | mov ebx,[coord_x] |
3164 | mov ebx,[coord_x] |
3003 | - | ||
3004 | ;--- |
- | |
3005 | ;â¥á⮢ ï à ¬ª |
- | |
3006 | mov eax,[h_br] |
- | |
3007 | - | ||
3008 | movzx edx,byte[eax] |
- | |
3009 | movzx esi,byte[eax+1] |
- | |
3010 | cmp ecx,1 |
- | |
3011 | jl .end_c0 |
- | |
3012 | shl edx,cl |
- | |
3013 | shl esi,cl |
- | |
3014 | .end_c0: |
- | |
3015 | stdcall buf_rect_by_size, [buf_i], ebx,[coord_y],edx,esi, 0xd0d0d0 |
- | |
3016 | ;--- |
- | |
3017 | - | ||
3018 | mov edx,[coord_y] |
3165 | mov edx,[coord_y] |
3019 | add edi,vox_offs_data |
3166 | add edi,vox_offs_data |
3020 | - | ||
3021 | mov esi,[coord_z] |
3167 | mov esi,[coord_z] |
3022 | stdcall vox_go_in_node, [buf_i], [buf_z], [h_br], [v_obj] |
3168 | stdcall vox_go_in_node, [buf_i], [buf_z], [h_br], [v_obj] |
3023 | - | ||
3024 | popad |
3169 | popad |
3025 | ret |
3170 | ret |
3026 | endp |
3171 | endp |
Line 3027... | Line 3172... | ||
3027 | 3172 | ||
Line 3423... | Line 3568... | ||
3423 | loop @b |
3568 | loop @b |
3424 | .end_0: |
3569 | .end_0: |
3425 | pop ecx |
3570 | pop ecx |
Line 3426... | Line 3571... | ||
3426 | 3571 | ||
3427 | ;eax - à §¬¥à ®¤®£® ª¢ ¤à â |
3572 | ;eax - à §¬¥à ®¤®£® ª¢ ¤à â |
3428 | ;edi - 㪠§ ⥫ì à¨áã¥¬ë¥ ¤ ë¥ ¨§ ®¡ê¥ªâ |
3573 | ;edi - 㪠§ ⥫ì à¨áã¥¬ë¥ ¤ ë¥ ¨§ ®¡ê¥ªâ |
3429 | mov ebx,[coord_x] |
3574 | mov ebx,[coord_x] |
3430 | mov edx,[coord_y] |
3575 | mov edx,[coord_y] |
3431 | mov edi,[v_obj] |
3576 | mov edi,[v_obj] |
3432 | add edi,vox_offs_data |
3577 | add edi,vox_offs_data |
3433 | xor esi,esi |
3578 | xor esi,esi |
- | 3579 | push eax |
|
- | 3580 | mov eax,1 |
|
- | 3581 | shl eax,cl |
|
3434 | push eax |
3582 | dec eax |
3435 | imul eax,[n_plane] |
3583 | sub eax,[n_plane] |
3436 | stdcall draw_sub_vox_obj_pl, [buf_i],[v_obj], eax |
3584 | stdcall draw_sub_vox_obj_pl, [buf_i],[v_obj],eax |
3437 | popad |
3585 | popad |
3438 | .end_f: |
3586 | .end_f: |
3439 | ret |
3587 | ret |
Line 3529... | Line 3677... | ||
3529 | cmp esi,0 |
3677 | cmp esi,0 |
3530 | jg .found |
3678 | jg .found |
Line 3531... | Line 3679... | ||
3531 | 3679 | ||
3532 | mov eax,[v_size] |
3680 | mov eax,[v_size] |
3533 | ;eax - à §¬¥à ®¤®£® ª¢ ¤à â |
3681 | ;eax - à §¬¥à ®¤®£® ª¢ ¤à â |
3534 | ;edi - 㪠§ ⥫ì à¨áã¥¬ë¥ ¤ ë¥ ¨§ ®¡ê¥ªâ |
3682 | ;edi - 㪠§ ⥫ì à¨áã¥¬ë¥ ¤ ë¥ ¨§ ®¡ê¥ªâ |
3535 | mov ecx,[k_scale] |
3683 | mov ecx,[k_scale] |
3536 | mov ebx,[coord_x] |
3684 | mov ebx,[coord_x] |
3537 | mov edx,[coord_y] |
3685 | mov edx,[coord_y] |
3538 | xor esi,esi |
3686 | xor esi,esi |
- | 3687 | push eax |
|
- | 3688 | mov eax,1 |
|
- | 3689 | shl eax,cl |
|
3539 | push eax |
3690 | dec eax |
3540 | imul eax,[n_plane] |
3691 | sub eax,[n_plane] |
Line 3541... | Line 3692... | ||
3541 | stdcall draw_sub_vox_obj_pl, [buf_i],[v_obj], eax |
3692 | stdcall draw_sub_vox_obj_pl, [buf_i],[v_obj], eax |
3542 | 3693 | ||
3543 | .end_2: |
3694 | .end_2: |
Line 3650... | Line 3801... | ||
3650 | 3801 | ||
3651 | ;¯à®à¨á®¢ª à ¬ª¨ ¥á«¨ à §¬¥à 㧫 = 1 |
3802 | ;¯à®à¨á®¢ª à ¬ª¨ ¥á«¨ à §¬¥à 㧫 = 1 |
3652 | cmp ecx,0 |
3803 | cmp ecx,0 |
3653 | jne @f |
3804 | jne @f |
3654 | ;¯à®¢¥àª £«ã¡¨ë esi |
3805 | ;¯à®¢¥àª £«ã¡¨ë esi |
3655 | ;clip_z=n_plane*v_size |
3806 | ;clip_z=n_plane |
3656 | stdcall vox_is_clip, [clip_z],[v_size] |
3807 | stdcall vox_is_clip, [clip_z];,[v_size] |
3657 | cmp eax,0 |
3808 | cmp eax,0 |
3658 | je @f |
3809 | je @f |
3659 | push ecx |
3810 | push ecx |
3660 | mov ecx,dword[edi] |
3811 | mov ecx,dword[edi] |
Line 3663... | Line 3814... | ||
3663 | pop ecx |
3814 | pop ecx |
3664 | @@: |
3815 | @@: |
Line 3665... | Line 3816... | ||
3665 | 3816 | ||
3666 | ;४ãàá¨¢ë© ¯¥à¥¡®à ¯®¤¤¥à¥¢ì¥¢ |
3817 | ;४ãàá¨¢ë© ¯¥à¥¡®à ¯®¤¤¥à¥¢ì¥¢ |
3667 | push edx |
- | |
3668 | 3818 | push edx |
|
3669 | ;¢å®¤ ¢ãâàì 㧫 |
3819 | ;¢å®¤ ¢ãâàì 㧫 |
Line 3670... | Line 3820... | ||
3670 | dec ecx |
3820 | dec ecx |
3671 | 3821 | ||
3672 | mov eax,[v_size] |
3822 | mov eax,[v_size] |
3673 | cmp ecx,1 |
3823 | cmp ecx,1 |
3674 | jl @f |
3824 | jl @f |
- | 3825 | shl eax,cl |
|
3675 | shl eax,cl |
3826 | @@: |
Line 3676... | Line 3827... | ||
3676 | @@: |
3827 | |
3677 | add edx,eax ;ª®à¥ªâ¨à®¢ª ¢ëá®âë ¯®¤ ¢®ªá¥«ì ¨¦¥£® ã஢ï |
3828 | add edx,eax ;ª®à¥ªâ¨à®¢ª ¢ëá®âë ¯®¤ ¢®ªá¥«ì ¨¦¥£® ã஢ï |
3678 | 3829 | ||
Line 3688... | Line 3839... | ||
3688 | pop esi edx ebx eax |
3839 | pop esi edx ebx eax |
3689 | .c_next: |
3840 | .c_next: |
3690 | shr ah,1 |
3841 | shr ah,1 |
3691 | dec al |
3842 | dec al |
3692 | jnz .cycle |
3843 | jnz .cycle |
3693 | - | ||
3694 | ;¢ë室 ¨§ 㧫 |
3844 | ;¢ë室 ¨§ 㧫 |
3695 | inc ecx |
3845 | inc ecx |
3696 | pop edx |
3846 | pop edx |
3697 | - | ||
3698 | jmp .end_f |
3847 | jmp .end_f |
3699 | .sub_trees: |
3848 | .sub_trees: |
3700 | cmp ecx,0 |
3849 | cmp ecx,0 |
3701 | jl .end_0 ;¥ à¨á㥬 ®ç¥ì ¬ «¥ìª¨¥ ¢®ªá¥«¨ |
3850 | jl .end_0 ;¥ à¨á㥬 ®ç¥ì ¬ «¥ìª¨¥ ¢®ªá¥«¨ |
Line 3702... | Line 3851... | ||
3702 | 3851 | ||
3703 | ;¯à®¢¥àª £«ã¡¨ë esi |
3852 | ;¯à®¢¥àª £«ã¡¨ë esi |
3704 | ;clip_z=n_plane*v_size |
3853 | ;clip_z=n_plane |
3705 | stdcall vox_is_clip, [clip_z],[v_size] |
3854 | stdcall vox_is_clip, [clip_z] |
3706 | cmp eax,0 |
3855 | cmp eax,0 |
Line 3707... | Line 3856... | ||
3707 | je .end_0 |
3856 | je .end_0 |
3708 | 3857 | ||
Line 3730... | Line 3879... | ||
3730 | pop esi edx ebx |
3879 | pop esi edx ebx |
3731 | jmp .end_0 |
3880 | jmp .end_0 |
3732 | @@: |
3881 | @@: |
3733 | ;ª¢ ¤à â ⥪ã饣® ¬ áèâ ¡ |
3882 | ;ª¢ ¤à â ⥪ã饣® ¬ áèâ ¡ |
3734 | stdcall buf_filled_rect_by_size, [buf_i], ebx,edx, eax,eax |
3883 | stdcall buf_filled_rect_by_size, [buf_i], ebx,edx, eax,eax |
3735 | - | ||
3736 | .end_0: |
3884 | .end_0: |
3737 | add edi,4 |
3885 | add edi,4 |
3738 | .end_f: |
3886 | .end_f: |
3739 | ret |
3887 | ret |
3740 | endp |
3888 | endp |
Line 3742... | Line 3890... | ||
3742 | ;description: |
3890 | ;description: |
3743 | ; ¢á¯®¬®£ ⥫ì ï äãªæ¨ï ¤«ï ¯à®¢¥àª¨ £«ã¡¨ë esi |
3891 | ; ¢á¯®¬®£ ⥫ì ï äãªæ¨ï ¤«ï ¯à®¢¥àª¨ £«ã¡¨ë esi |
3744 | ;input: |
3892 | ;input: |
3745 | ; ecx - ã஢¥ì ⥪ã襣® 㧫 |
3893 | ; ecx - ã஢¥ì ⥪ã襣® 㧫 |
3746 | ; esi - coord z |
3894 | ; esi - coord z |
3747 | ; clip_z - n_plane*v_size |
3895 | ; clip_z - n_plane |
3748 | ;output: |
3896 | ;output: |
3749 | ; eax - 0 if no draw, 1 if draw |
3897 | ; eax - 0 if no draw, 1 if draw |
3750 | align 4 |
3898 | align 4 |
3751 | proc vox_is_clip uses ebx edi, clip_z:dword, v_size:dword |
3899 | proc vox_is_clip uses ebx edi, clip_z:dword |
3752 | xor eax,eax |
3900 | xor eax,eax |
3753 | mov ebx,[clip_z] |
3901 | mov ebx,[clip_z] |
3754 | mov edi,[v_size] |
3902 | mov edi,1 |
3755 | cmp ecx,1 |
3903 | cmp ecx,1 |
3756 | jl @f |
3904 | jl @f |
3757 | shl edi,cl |
3905 | shl edi,cl |
3758 | @@: |
3906 | @@: |
3759 | ;edi = 2^ecx |
3907 | ;edi = 2^ecx |
3760 | add edi,esi |
3908 | add edi,esi |
3761 | cmp edi,ebx ;if (esi+2^ecx*v_size <= (n_plane*v_size)) no draw |
3909 | cmp edi,ebx ;if (esi+2^ecx <= n_plane) no draw |
3762 | jle @f |
3910 | jle @f |
3763 | add ebx,[v_size] |
3911 | inc ebx |
3764 | cmp esi,ebx ;if (esi >= (n_plane+1)*v_size) no draw |
3912 | cmp esi,ebx ;if (esi >= (n_plane+1)) no draw |
3765 | jge @f |
3913 | jge @f |
3766 | inc eax |
3914 | inc eax |
3767 | @@: |
3915 | @@: |
3768 | ret |
3916 | ret |
3769 | endp |
3917 | endp |
Line 3793... | Line 3941... | ||
3793 | mov edi,[v_obj] |
3941 | mov edi,[v_obj] |
3794 | add edi,vox_offs_tree_table |
3942 | add edi,vox_offs_tree_table |
3795 | add edi,8 |
3943 | add edi,8 |
3796 | sub edi,eax |
3944 | sub edi,eax |
Line 3797... | Line 3945... | ||
3797 | 3945 | ||
3798 | mov eax,[v_size] ;eax - ¢ëá®â ®á®¢ ¨ï ¥¤¨¨ç®£® ¢®ªá¥«ï |
3946 | mov eax,[v_size] |
3799 | cmp ecx,1 |
3947 | cmp ecx,1 |
3800 | jl @f ;¢® ¨§¡¥¦ ¨¥ § 横«¨¢ ¨ï |
3948 | jl @f |
3801 | shl eax,cl |
3949 | shl eax,cl |
Line 3802... | Line 3950... | ||
3802 | @@: |
3950 | @@: |
3803 | 3951 | ||
3804 | bt word[edi],0 ;test voxel coord x |
3952 | bt word[edi],0 ;test voxel coord x |
3805 | jnc @f |
3953 | jnc @f |
3806 | add ebx,eax |
- | |
3807 | @@: |
- | |
3808 | bt word[edi],1 ;test voxel coord y |
- | |
3809 | jnc @f |
- | |
3810 | add esi,eax ;¬¥ï¥¬ £«ã¡¨ã ¤«ï ¡ãä¥à z |
3954 | add ebx,eax |
3811 | @@: |
3955 | @@: |
3812 | bt word[edi],2 ;test voxel coord z |
3956 | bt word[edi],2 ;test voxel coord z |
3813 | jnc @f |
3957 | jnc @f |
- | 3958 | sub edx,eax |
|
- | 3959 | @@: |
|
- | 3960 | bt word[edi],1 ;test voxel coord y |
|
- | 3961 | jc @f |
|
- | 3962 | mov eax,1 |
|
- | 3963 | cmp ecx,1 |
|
- | 3964 | jl .end_0 |
|
- | 3965 | shl eax,cl |
|
- | 3966 | .end_0: |
|
3814 | sub edx,eax |
3967 | add esi,eax ;¬¥ï¥¬ £«ã¡¨ã ¤«ï ¡ãä¥à z |
3815 | @@: |
3968 | @@: |
3816 | pop edi eax |
3969 | pop edi eax |
3817 | .end_f: |
3970 | .end_f: |
Line 3931... | Line 4084... | ||
3931 | ret |
4084 | ret |
3932 | endp |
4085 | endp |
Line 3933... | Line 4086... | ||
3933 | 4086 | ||
3934 | txt_err_n8b db 'need buffer 8 bit',13,10,0 |
4087 | txt_err_n8b db 'need buffer 8 bit',13,10,0 |
- | 4088 | txt_err_n24b db 'need buffer 24 bit',13,10,0 |
|
3935 | txt_err_n24b db 'need buffer 24 bit',13,10,0 |
4089 | txt_err_n32b db 'need buffer 32 bit',13,10,0 |
Line 3936... | Line 4090... | ||
3936 | txt_err_n8_24b db 'need buffer 8 or 24 bit',13,10,0 |
4090 | txt_err_n8_24b db 'need buffer 8 or 24 bit',13,10,0 |
3937 | 4091 | ||
3938 | align 16 |
4092 | align 16 |
Line 3966... | Line 4120... | ||
3966 | dd sz_buf2d_get_pixel, buf_get_pixel |
4120 | dd sz_buf2d_get_pixel, buf_get_pixel |
3967 | dd sz_buf2d_vox_brush_create, vox_brush_create |
4121 | dd sz_buf2d_vox_brush_create, vox_brush_create |
3968 | dd sz_buf2d_vox_brush_delete, vox_brush_delete |
4122 | dd sz_buf2d_vox_brush_delete, vox_brush_delete |
3969 | dd sz_buf2d_vox_obj_get_img_w_3g, buf_vox_obj_get_img_w_3g |
4123 | dd sz_buf2d_vox_obj_get_img_w_3g, buf_vox_obj_get_img_w_3g |
3970 | dd sz_buf2d_vox_obj_get_img_h_3g, buf_vox_obj_get_img_h_3g |
4124 | dd sz_buf2d_vox_obj_get_img_h_3g, buf_vox_obj_get_img_h_3g |
- | 4125 | dd sz_buf2d_vox_obj_draw_1g, buf_vox_obj_draw_1g |
|
3971 | dd sz_buf2d_vox_obj_draw_3g, buf_vox_obj_draw_3g |
4126 | dd sz_buf2d_vox_obj_draw_3g, buf_vox_obj_draw_3g |
3972 | dd sz_buf2d_vox_obj_draw_3g_scaled, buf_vox_obj_draw_3g_scaled |
4127 | dd sz_buf2d_vox_obj_draw_3g_scaled, buf_vox_obj_draw_3g_scaled |
3973 | dd sz_buf2d_vox_obj_draw_pl, buf_vox_obj_draw_pl |
4128 | dd sz_buf2d_vox_obj_draw_pl, buf_vox_obj_draw_pl |
3974 | dd sz_buf2d_vox_obj_draw_pl_scaled, buf_vox_obj_draw_pl_scaled |
4129 | dd sz_buf2d_vox_obj_draw_pl_scaled, buf_vox_obj_draw_pl_scaled |
3975 | dd sz_buf2d_vox_obj_draw_3g_shadows, buf_vox_obj_draw_3g_shadows |
4130 | dd sz_buf2d_vox_obj_draw_3g_shadows, buf_vox_obj_draw_3g_shadows |
Line 4003... | Line 4158... | ||
4003 | sz_buf2d_get_pixel db 'buf2d_get_pixel',0 |
4158 | sz_buf2d_get_pixel db 'buf2d_get_pixel',0 |
4004 | sz_buf2d_vox_brush_create db 'buf2d_vox_brush_create',0 |
4159 | sz_buf2d_vox_brush_create db 'buf2d_vox_brush_create',0 |
4005 | sz_buf2d_vox_brush_delete db 'buf2d_vox_brush_delete',0 |
4160 | sz_buf2d_vox_brush_delete db 'buf2d_vox_brush_delete',0 |
4006 | sz_buf2d_vox_obj_get_img_w_3g db 'buf2d_vox_obj_get_img_w_3g',0 |
4161 | sz_buf2d_vox_obj_get_img_w_3g db 'buf2d_vox_obj_get_img_w_3g',0 |
4007 | sz_buf2d_vox_obj_get_img_h_3g db 'buf2d_vox_obj_get_img_h_3g',0 |
4162 | sz_buf2d_vox_obj_get_img_h_3g db 'buf2d_vox_obj_get_img_h_3g',0 |
- | 4163 | sz_buf2d_vox_obj_draw_1g db 'buf2d_vox_obj_draw_1g',0 |
|
4008 | sz_buf2d_vox_obj_draw_3g db 'buf2d_vox_obj_draw_3g',0 |
4164 | sz_buf2d_vox_obj_draw_3g db 'buf2d_vox_obj_draw_3g',0 |
4009 | sz_buf2d_vox_obj_draw_3g_scaled db 'buf2d_vox_obj_draw_3g_scaled',0 |
4165 | sz_buf2d_vox_obj_draw_3g_scaled db 'buf2d_vox_obj_draw_3g_scaled',0 |
4010 | sz_buf2d_vox_obj_draw_pl db 'buf2d_vox_obj_draw_pl',0 |
4166 | sz_buf2d_vox_obj_draw_pl db 'buf2d_vox_obj_draw_pl',0 |
4011 | sz_buf2d_vox_obj_draw_pl_scaled db 'buf2d_vox_obj_draw_pl_scaled',0 |
4167 | sz_buf2d_vox_obj_draw_pl_scaled db 'buf2d_vox_obj_draw_pl_scaled',0 |
4012 | sz_buf2d_vox_obj_draw_3g_shadows db 'buf2d_vox_obj_draw_3g_shadows',0=>1.;t+=.005){ |
4168 | sz_buf2d_vox_obj_draw_3g_shadows db 'buf2d_vox_obj_draw_3g_shadows',0=>1.;t+=.005){ |